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
ed11196e
提交
ed11196e
authored
3月 17, 2025
作者:
吕本才
提交者:
Coding
3月 17, 2025
浏览文件
操作
浏览文件
下载
差异文件
Accept Merge Request #103: (qa -> main)
Merge Request: 上线财务成本统计需求 Created By: @吕本才 Accepted By: @吕本才 URL:
https://g-pkkp8204.coding.net/p/wangxiaolu-sfa/d/wangxiaolu-link-module-bi/git/merge/103?initial=true
上级
840d87d3
d297ef25
显示空白字符变更
内嵌
并排
正在显示
63 个修改的文件
包含
3792 行增加
和
18 行删除
+3792
-18
pom.xml
pom.xml
+1
-4
ThreadPoolConfig.java
src/main/java/com/link/bi/config/ThreadPoolConfig.java
+28
-0
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
+102
-0
CollectOrderLogDao.java
src/main/java/com/link/bi/domain/dao/CollectOrderLogDao.java
+16
-0
IFinanceBaseProductDao.java
...n/java/com/link/bi/domain/dao/IFinanceBaseProductDao.java
+17
-0
IFinanceBaseZbjTypeDao.java
...n/java/com/link/bi/domain/dao/IFinanceBaseZbjTypeDao.java
+29
-0
IFinanceOrderDao.java
src/main/java/com/link/bi/domain/dao/IFinanceOrderDao.java
+9
-0
IFinanceOrderDetailDao.java
...n/java/com/link/bi/domain/dao/IFinanceOrderDetailDao.java
+17
-0
IProductDao.java
src/main/java/com/link/bi/domain/dao/IProductDao.java
+3
-0
CollectOrderLogDaoImpl.java
...a/com/link/bi/domain/dao/impl/CollectOrderLogDaoImpl.java
+49
-0
FinanceBaseProductDaoImpl.java
...om/link/bi/domain/dao/impl/FinanceBaseProductDaoImpl.java
+32
-0
FinanceBaseZbjTypeDaoImpl.java
...om/link/bi/domain/dao/impl/FinanceBaseZbjTypeDaoImpl.java
+65
-0
FinanceOrderDaoImpl.java
...java/com/link/bi/domain/dao/impl/FinanceOrderDaoImpl.java
+15
-0
FinanceOrderDetailDaoImpl.java
...om/link/bi/domain/dao/impl/FinanceOrderDetailDaoImpl.java
+51
-0
ProductDaoImpl.java
...main/java/com/link/bi/domain/dao/impl/ProductDaoImpl.java
+17
-7
CollectErrorLog.java
src/main/java/com/link/bi/domain/entity/CollectErrorLog.java
+96
-0
CollectOrderLog.java
src/main/java/com/link/bi/domain/entity/CollectOrderLog.java
+88
-0
EcBaStoreDailyData.java
...in/java/com/link/bi/domain/entity/EcBaStoreDailyData.java
+3
-0
FinanceBaseProduct.java
...in/java/com/link/bi/domain/entity/FinanceBaseProduct.java
+60
-0
FinanceBaseZbjType.java
...in/java/com/link/bi/domain/entity/FinanceBaseZbjType.java
+44
-0
FinanceOrder.java
src/main/java/com/link/bi/domain/entity/FinanceOrder.java
+483
-0
FinanceOrderDetail.java
...in/java/com/link/bi/domain/entity/FinanceOrderDetail.java
+294
-0
OppoCmm.java
src/main/java/com/link/bi/domain/entity/OppoCmm.java
+3
-0
OppoSycm.java
src/main/java/com/link/bi/domain/entity/OppoSycm.java
+3
-0
OppoSycmStore.java
src/main/java/com/link/bi/domain/entity/OppoSycmStore.java
+3
-0
CollectOrderLogMapper.java
...java/com/link/bi/domain/mapper/CollectOrderLogMapper.java
+9
-0
FinanceBaseProductMapper.java
...a/com/link/bi/domain/mapper/FinanceBaseProductMapper.java
+10
-0
FinanceBaseZbjTypeMapper.java
...a/com/link/bi/domain/mapper/FinanceBaseZbjTypeMapper.java
+14
-0
FinanceOrderDetailMapper.java
...a/com/link/bi/domain/mapper/FinanceOrderDetailMapper.java
+18
-0
FinanceOrderMapper.java
...in/java/com/link/bi/domain/mapper/FinanceOrderMapper.java
+10
-0
PrdInfoMapper.java
src/main/java/com/link/bi/domain/mapper/PrdInfoMapper.java
+1
-2
FinanceCostWq.java
src/main/java/com/link/bi/domain/wq/FinanceCostWq.java
+48
-0
FinanceBaseZbjTypeListVo.java
...va/com/link/bi/pojo/request/FinanceBaseZbjTypeListVo.java
+11
-0
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
+53
-0
FinanceSelectCommonVo.java
.../java/com/link/bi/pojo/request/FinanceSelectCommonVo.java
+11
-0
CollectOrderLogListDto.java
...ava/com/link/bi/pojo/response/CollectOrderLogListDto.java
+80
-0
FinanceBaseProductDto.java
...java/com/link/bi/pojo/response/FinanceBaseProductDto.java
+56
-0
FinanceBaseProductListDto.java
.../com/link/bi/pojo/response/FinanceBaseProductListDto.java
+31
-0
FinanceBaseZbjTypeImportDto.java
...om/link/bi/pojo/response/FinanceBaseZbjTypeImportDto.java
+19
-0
FinanceBiListDto.java
...main/java/com/link/bi/pojo/response/FinanceBiListDto.java
+42
-0
FinanceExportBiListDto.java
...ava/com/link/bi/pojo/response/FinanceExportBiListDto.java
+55
-0
FinanceExportOrderDetailListDto.java
...ink/bi/pojo/response/FinanceExportOrderDetailListDto.java
+165
-0
FinanceOrderDetailListDto.java
.../com/link/bi/pojo/response/FinanceOrderDetailListDto.java
+66
-0
FinanceZbjTypeListDto.java
...java/com/link/bi/pojo/response/FinanceZbjTypeListDto.java
+24
-0
CollectOrderLogInfoService.java
.../java/com/link/bi/service/CollectOrderLogInfoService.java
+13
-0
FinanceBaseProductService.java
...n/java/com/link/bi/service/FinanceBaseProductService.java
+23
-0
FinanceBaseZbjTypeService.java
...n/java/com/link/bi/service/FinanceBaseZbjTypeService.java
+24
-0
FinanceOrderDetailService.java
...n/java/com/link/bi/service/FinanceOrderDetailService.java
+16
-0
FinanceOrderService.java
src/main/java/com/link/bi/service/FinanceOrderService.java
+6
-0
IEcGoodsSupplyDemandService.java
...java/com/link/bi/service/IEcGoodsSupplyDemandService.java
+1
-2
IProductService.java
src/main/java/com/link/bi/service/IProductService.java
+3
-0
CollectOrderLogInfoServiceImpl.java
.../link/bi/service/impl/CollectOrderLogInfoServiceImpl.java
+37
-0
EcGoodsSupplyDemandServiceImpl.java
.../link/bi/service/impl/EcGoodsSupplyDemandServiceImpl.java
+1
-3
FinanceBaseProductServiceImpl.java
...m/link/bi/service/impl/FinanceBaseProductServiceImpl.java
+137
-0
FinanceBaseZbjTypeServiceImpl.java
...m/link/bi/service/impl/FinanceBaseZbjTypeServiceImpl.java
+228
-0
FinanceOrderDetailServiceImpl.java
...m/link/bi/service/impl/FinanceOrderDetailServiceImpl.java
+441
-0
FinanceOrderServiceImpl.java
...ava/com/link/bi/service/impl/FinanceOrderServiceImpl.java
+19
-0
ProductServiceImpl.java
...ain/java/com/link/bi/service/impl/ProductServiceImpl.java
+15
-0
FinanceBaseZbjTypeMapper.xml
src/main/resources/mapper/bi/FinanceBaseZbjTypeMapper.xml
+61
-0
FinanceOrderDetailMapper.xml
src/main/resources/mapper/bi/FinanceOrderDetailMapper.xml
+386
-0
没有找到文件。
pom.xml
浏览文件 @
ed11196e
...
@@ -87,10 +87,7 @@
...
@@ -87,10 +87,7 @@
<artifactId>
spring-webmvc
</artifactId>
<artifactId>
spring-webmvc
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
</dependency>
<dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<groupId>
com.alibaba
</groupId>
...
...
src/main/java/com/link/bi/config/ThreadPoolConfig.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
config
;
import
lombok.Data
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
java.util.concurrent.Executor
;
@Data
@Configuration
public
class
ThreadPoolConfig
{
private
int
maxPoolSize
=
20
;
private
int
corePoolSize
=
5
;
private
int
queueCapacity
=
20
;
@Bean
public
Executor
customThreadPool
()
{
ThreadPoolTaskExecutor
executor
=
new
ThreadPoolTaskExecutor
();
executor
.
setCorePoolSize
(
corePoolSize
);
executor
.
setMaxPoolSize
(
maxPoolSize
);
executor
.
setQueueCapacity
(
queueCapacity
);
executor
.
setThreadNamePrefix
(
"CustomThreadPool-"
);
executor
.
initialize
();
return
executor
;
}
}
src/main/java/com/link/bi/config/listener/FinanceBaseZbjTypeListener.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
config
.
listener
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.event.AnalysisEventListener
;
import
com.link.bi.pojo.response.FinanceBaseZbjTypeImportDto
;
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
<
FinanceBaseZbjTypeImportDto
>
{
// 存储解析后的数据
private
List
<
FinanceBaseZbjTypeImportDto
>
dataList
=
new
ArrayList
<>();
@Override
public
void
invoke
(
FinanceBaseZbjTypeImportDto
data
,
AnalysisContext
context
)
{
// 每解析一行数据就会调用该方法
dataList
.
add
(
data
);
}
@Override
public
void
doAfterAllAnalysed
(
AnalysisContext
context
)
{
// 解析完所有数据后调用该方法
}
public
List
<
FinanceBaseZbjTypeImportDto
>
getDataList
()
{
return
dataList
;
}
}
src/main/java/com/link/bi/controller/query/FinanceBaseZbjTypeController.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
controller
.
query
;
import
com.link.bi.pojo.request.FinanceBaseZbjTypeListVo
;
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 zbjTypeListVo
* @return
*/
@RequiresPermissions
(
"bi:livecate:list"
)
@GetMapping
(
"/list"
)
public
List
<
FinanceZbjTypeListDto
>
baseZbjTypeAllList
(
FinanceBaseZbjTypeListVo
zbjTypeListVo
)
{
return
baseZbjTypeService
.
baseZbjTypeAllList
(
zbjTypeListVo
);
}
@RequiresPermissions
(
"bi:livecate:list"
)
@PostMapping
(
"/import"
)
public
String
importData
(
@RequestParam
(
"file"
)
MultipartFile
file
)
{
return
baseZbjTypeService
.
importData
(
file
);
}
}
src/main/java/com/link/bi/controller/query/FinanceOrderQueryController.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
controller
.
query
;
import
com.github.pagehelper.PageInfo
;
import
com.link.bi.pojo.request.FinanceCostVo
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
import
com.link.bi.pojo.response.FinanceBaseProductListDto
;
import
com.link.bi.pojo.response.FinanceZbjTypeListDto
;
import
com.link.bi.service.FinanceBaseProductService
;
import
com.link.bi.service.FinanceBaseZbjTypeService
;
import
com.link.bi.service.FinanceOrderDetailService
;
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
javax.servlet.http.HttpServletResponse
;
import
java.util.List
;
/**
* 财务bi分析
*
* @author admin
* @date 2024-12-19
*/
@RestController
@RequestMapping
(
"/finance"
)
public
class
FinanceOrderQueryController
extends
BaseController
{
@Autowired
private
FinanceOrderDetailService
detailService
;
@Autowired
private
FinanceBaseZbjTypeService
baseZbjTypeService
;
@Autowired
private
FinanceBaseProductService
baseProductService
;
/**
* 财务成本聚合列表
*/
@RequiresPermissions
(
"bi:finance:list"
)
@PostMapping
(
"/cost/list"
)
public
PageInfo
selectBiFinanceCostList
(
@RequestBody
FinanceCostVo
financeCostVo
)
{
return
detailService
.
selectBiFinanceCostList
(
financeCostVo
);
}
/**
* 财务成本聚合详情查询
*/
@RequiresPermissions
(
"bi:finance:list"
)
@PostMapping
(
"/cost/detail/list"
)
public
PageInfo
selectBiFinanceCostDetailList
(
@RequestBody
FinanceCostVo
financeCostVo
)
{
return
detailService
.
selectBiFinanceCostDetailPage
(
financeCostVo
);
}
// 直播间类型下拉列表用
@RequiresPermissions
(
"bi:finance:list"
)
@GetMapping
(
"/zbjType/list"
)
public
List
<
FinanceZbjTypeListDto
>
baseZbjTypeList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseZbjTypeService
.
baseZbjTypeList
(
commonVo
);
}
// 口味
@RequiresPermissions
(
"bi:finance:list"
)
@GetMapping
(
"/flavor/list"
)
public
List
<
FinanceBaseProductListDto
>
flavorList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseProductService
.
flavorList
(
commonVo
);
}
// 规格
@RequiresPermissions
(
"bi:finance:list"
)
@GetMapping
(
"/spec/list"
)
public
List
<
FinanceBaseProductListDto
>
specList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseProductService
.
specList
(
commonVo
);
}
// 系列
@RequiresPermissions
(
"bi:finance:list"
)
@GetMapping
(
"/series/list"
)
public
List
<
FinanceBaseProductListDto
>
seriesList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseProductService
.
seriesList
(
commonVo
);
}
// 商品名称
@RequiresPermissions
(
"bi:finance:list"
)
@GetMapping
(
"/productName/list"
)
public
List
<
FinanceBaseProductListDto
>
productNameList
(
FinanceSelectCommonVo
commonVo
)
{
return
baseProductService
.
productNameList
(
commonVo
);
}
@RequiresPermissions
(
"bi:finance:list"
)
@PostMapping
(
"/cost/subList"
)
public
PageInfo
selectBiFinanceCostSubList
(
@RequestBody
FinanceCostVo
financeCostVo
)
{
return
detailService
.
selectBiFinanceCostList
(
financeCostVo
);
}
@RequiresPermissions
(
"bi:finance:list"
)
@PostMapping
(
"/cost/export"
)
public
void
exportBiFinanceCostList
(
@RequestBody
FinanceCostVo
financeCostVo
,
HttpServletResponse
response
)
{
detailService
.
exportBiFinanceCostList
(
financeCostVo
,
response
);
}
}
src/main/java/com/link/bi/domain/dao/CollectOrderLogDao.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.link.bi.domain.entity.CollectOrderLog
;
import
java.util.Date
;
import
java.util.List
;
public
interface
CollectOrderLogDao
{
// 插入一条记录
void
insert
(
CollectOrderLog
collectOrderLog
);
Date
selectOrderSyncLatest
(
Integer
syncType
);
List
<
CollectOrderLog
>
list
(
Wrapper
<
CollectOrderLog
>
queryWrapper
);
}
src/main/java/com/link/bi/domain/dao/IFinanceBaseProductDao.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.link.bi.domain.entity.FinanceBaseProduct
;
import
com.link.bi.pojo.response.FinanceBaseProductDto
;
import
java.util.List
;
/**
* @author : lvbencai
* @date : 2025年01月07日10:04:25
* @describe : 财务需要的订单DAO
*/
public
interface
IFinanceBaseProductDao
{
List
<
FinanceBaseProductDto
>
list
(
LambdaQueryWrapper
<
FinanceBaseProduct
>
queryWrapper
);
}
src/main/java/com/link/bi/domain/dao/IFinanceBaseZbjTypeDao.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
java.util.List
;
/**
* @author : lvbencai
* @date : 2025年01月14日
* @describe : 财务抖音直播间类型DAO
*/
public
interface
IFinanceBaseZbjTypeDao
{
List
<
FinanceBaseZbjType
>
list
(
LambdaQueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
);
Page
<
FinanceBaseZbjType
>
page
(
Page
<
FinanceBaseZbjType
>
pageI
,
QueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
);
void
removeByIds
(
List
<
Long
>
idsToDelete
);
void
saveBatch
(
List
<
FinanceBaseZbjType
>
recordsToSave
);
void
updateBatchById
(
List
<
FinanceBaseZbjType
>
recordsToUpdate
);
void
saveOrUpdateBatch
(
List
<
FinanceBaseZbjType
>
dataList
);
}
src/main/java/com/link/bi/domain/dao/IFinanceOrderDao.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
;
/**
* @author : lvbencai
* @date : 2025年01月07日10:04:25
* @describe : 财务需要的订单DAO
*/
public
interface
IFinanceOrderDao
{
}
src/main/java/com/link/bi/domain/dao/IFinanceOrderDetailDao.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
;
import
com.github.pagehelper.PageInfo
;
import
com.link.bi.domain.entity.FinanceOrderDetail
;
import
com.link.bi.domain.wq.FinanceCostWq
;
/**
* @author : lvbencai
* @date : 2025年01月07日10:04:25
* @describe : 财务需要的订单明细DAO
*/
public
interface
IFinanceOrderDetailDao
{
PageInfo
<
FinanceOrderDetail
>
selectBiFinanceCostList
(
FinanceCostWq
wq
);
PageInfo
<
FinanceOrderDetail
>
selectBiFinanceCostDetailList
(
FinanceCostWq
wq
);
}
src/main/java/com/link/bi/domain/dao/IProductDao.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
;
package
com
.
link
.
bi
.
domain
.
dao
;
import
com.link.bi.domain.entity.PrdInfo
;
import
com.link.bi.domain.wq.ProductWq
;
import
com.link.bi.domain.wq.ProductWq
;
import
com.link.bi.pojo.response.PrdInfoDto
;
import
com.link.bi.pojo.response.PrdInfoDto
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.common.core.web.domain.PageInfo
;
...
@@ -20,4 +21,6 @@ public interface IProductDao {
...
@@ -20,4 +21,6 @@ public interface IProductDao {
List
<
PrdInfoDto
>
selectListByIds
(
List
<
Integer
>
ids
);
List
<
PrdInfoDto
>
selectListByIds
(
List
<
Integer
>
ids
);
List
<
PrdInfoDto
>
selectListByCodes
(
List
<
String
>
prdCodes
);
List
<
PrdInfoDto
>
selectListByCodes
(
List
<
String
>
prdCodes
);
List
<
PrdInfo
>
selectProdSeries
();
}
}
src/main/java/com/link/bi/domain/dao/impl/CollectOrderLogDaoImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.link.bi.domain.dao.CollectOrderLogDao
;
import
com.link.bi.domain.entity.CollectOrderLog
;
import
com.link.bi.domain.mapper.CollectOrderLogMapper
;
import
org.apache.commons.lang3.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.List
;
@Repository
public
class
CollectOrderLogDaoImpl
implements
CollectOrderLogDao
{
@Autowired
private
CollectOrderLogMapper
logInfoMapper
;
@Override
public
void
insert
(
CollectOrderLog
collectOrderLog
)
{
logInfoMapper
.
insert
(
collectOrderLog
);
}
@Override
public
Date
selectOrderSyncLatest
(
Integer
syncType
)
{
// 查询最新发货日期
List
<
CollectOrderLog
>
orderList
=
logInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
CollectOrderLog
>()
// 默认查询xxljob自动同步时间
.
eq
(
CollectOrderLog:
:
getSyncType
,
syncType
)
.
eq
(
CollectOrderLog:
:
getDelFlag
,
0
)
.
orderByDesc
(
CollectOrderLog:
:
getUpdateTime
)
.
last
(
"LIMIT 1"
));
if
(
ObjectUtils
.
isNotEmpty
(
orderList
)){
// 最新的数据日期
return
orderList
.
get
(
0
).
getLatestTime
();
}
return
null
;
}
@Override
public
List
<
CollectOrderLog
>
list
(
Wrapper
<
CollectOrderLog
>
queryWrapper
)
{
return
logInfoMapper
.
selectList
(
queryWrapper
);
}
}
src/main/java/com/link/bi/domain/dao/impl/FinanceBaseProductDaoImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.link.bi.domain.dao.IFinanceBaseProductDao
;
import
com.link.bi.domain.entity.FinanceBaseProduct
;
import
com.link.bi.domain.mapper.FinanceBaseProductMapper
;
import
com.link.bi.pojo.response.FinanceBaseProductDto
;
import
com.sfa.common.core.utils.bean.BeanUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author : lvbencai
* @date : 2025-01-14 17:00:00
* @describe :财务抖音订单数据 商品的信息DAO
*/
@Slf4j
@Service
public
class
FinanceBaseProductDaoImpl
implements
IFinanceBaseProductDao
{
@Autowired
private
FinanceBaseProductMapper
mapper
;
@Override
public
List
<
FinanceBaseProductDto
>
list
(
LambdaQueryWrapper
<
FinanceBaseProduct
>
queryWrapper
)
{
List
<
FinanceBaseProduct
>
financeBaseProducts
=
mapper
.
selectList
(
queryWrapper
);
return
BeanUtils
.
transitionDtos
(
financeBaseProducts
,
FinanceBaseProductDto
.
class
);
}
}
src/main/java/com/link/bi/domain/dao/impl/FinanceBaseZbjTypeDaoImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.link.bi.domain.dao.IFinanceBaseZbjTypeDao
;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
com.link.bi.domain.mapper.FinanceBaseZbjTypeMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author : lvbencai
* @date : 2025-01-14 17:30:00
* @describe : 财务抖音订单明细中,直播间类型
*/
@Slf4j
@Service
public
class
FinanceBaseZbjTypeDaoImpl
implements
IFinanceBaseZbjTypeDao
{
@Autowired
private
FinanceBaseZbjTypeMapper
mapper
;
@Override
public
List
<
FinanceBaseZbjType
>
list
(
LambdaQueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
)
{
return
mapper
.
selectList
(
new
LambdaQueryWrapper
<>());
}
@Override
public
Page
<
FinanceBaseZbjType
>
page
(
Page
<
FinanceBaseZbjType
>
page
,
QueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
)
{
return
mapper
.
selectPage
(
page
,
queryWrapper
);
}
@Override
public
void
removeByIds
(
List
<
Long
>
idsToDelete
)
{
mapper
.
deleteBatchIds
(
idsToDelete
);
}
@Override
public
void
saveBatch
(
List
<
FinanceBaseZbjType
>
dataList
)
{
for
(
FinanceBaseZbjType
data
:
dataList
)
{
mapper
.
insert
(
data
);
}
}
@Override
public
void
updateBatchById
(
List
<
FinanceBaseZbjType
>
dataList
)
{
for
(
FinanceBaseZbjType
data
:
dataList
)
{
mapper
.
updateById
(
data
);
}
}
@Override
public
void
saveOrUpdateBatch
(
List
<
FinanceBaseZbjType
>
dataList
)
{
for
(
int
i
=
0
;
i
<
dataList
.
size
();
i
+=
100
)
{
int
toIndex
=
Math
.
min
(
i
+
100
,
dataList
.
size
());
List
<
FinanceBaseZbjType
>
batchLists
=
dataList
.
subList
(
i
,
toIndex
);
mapper
.
saveOrUpdateBatch
(
batchLists
);
}
}
}
src/main/java/com/link/bi/domain/dao/impl/FinanceOrderDaoImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
.
impl
;
import
com.link.bi.domain.dao.IFinanceOrderDao
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* @author : lvbencai
* @date : 2025-01-14 17:31:05
* @describe : 财务抖音订单数据
*/
@Slf4j
@Service
public
class
FinanceOrderDaoImpl
implements
IFinanceOrderDao
{
}
src/main/java/com/link/bi/domain/dao/impl/FinanceOrderDetailDaoImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
dao
.
impl
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.link.bi.domain.dao.IFinanceOrderDetailDao
;
import
com.link.bi.domain.entity.FinanceOrderDetail
;
import
com.link.bi.domain.mapper.FinanceOrderDetailMapper
;
import
com.link.bi.domain.wq.FinanceCostWq
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* @author : lvbencai
* @date : 2024-12-10 16
* @describe : 旺店通订单明细
*/
@Slf4j
@Service
public
class
FinanceOrderDetailDaoImpl
implements
IFinanceOrderDetailDao
{
@Autowired
FinanceOrderDetailMapper
detailMapper
;
/**
* 查询分页数据
* @param wq
* @return
*/
@Override
public
PageInfo
<
FinanceOrderDetail
>
selectBiFinanceCostList
(
FinanceCostWq
wq
)
{
// 查询分页数据
PageHelper
.
startPage
(
wq
.
getPageNum
(),
wq
.
getPageSize
());
List
<
FinanceOrderDetail
>
financeOrderDetails
=
detailMapper
.
selectBiFinanceCostList
(
wq
);
PageInfo
<
FinanceOrderDetail
>
pageInfo
=
new
PageInfo
<>(
financeOrderDetails
);
return
pageInfo
;
}
@Override
public
PageInfo
<
FinanceOrderDetail
>
selectBiFinanceCostDetailList
(
FinanceCostWq
wq
)
{
// 查询分页数据
PageHelper
.
startPage
(
wq
.
getPageNum
(),
wq
.
getPageSize
());
List
<
FinanceOrderDetail
>
financeOrderDetails
=
detailMapper
.
selectBiFinanceCostDetailList
(
wq
);
PageInfo
<
FinanceOrderDetail
>
pageInfo
=
new
PageInfo
<>(
financeOrderDetails
);
return
pageInfo
;
}
}
src/main/java/com/link/bi/domain/dao/impl/ProductDaoImpl.java
浏览文件 @
ed11196e
...
@@ -42,14 +42,14 @@ public class ProductDaoImpl implements IProductDao {
...
@@ -42,14 +42,14 @@ public class ProductDaoImpl implements IProductDao {
@Override
@Override
public
PageInfo
productPage
(
ProductWq
pqw
)
{
public
PageInfo
productPage
(
ProductWq
pqw
)
{
LambdaQueryWrapper
<
PrdInfo
>
qw
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
PrdInfo
>
qw
=
new
LambdaQueryWrapper
<>();
if
(
Objects
.
nonNull
(
pqw
.
getSeriesId
())){
if
(
Objects
.
nonNull
(
pqw
.
getSeriesId
()))
{
qw
.
eq
(
PrdInfo:
:
getSeriesId
,
pqw
.
getSeriesId
());
qw
.
eq
(
PrdInfo:
:
getSeriesId
,
pqw
.
getSeriesId
());
}
}
if
(
StringUtils
.
isNotBlank
(
pqw
.
getPrdCode
())){
if
(
StringUtils
.
isNotBlank
(
pqw
.
getPrdCode
()))
{
qw
.
eq
(
PrdInfo:
:
getPrdCode
,
pqw
.
getPrdCode
());
qw
.
eq
(
PrdInfo:
:
getPrdCode
,
pqw
.
getPrdCode
());
}
}
if
(
StringUtils
.
isNotBlank
(
pqw
.
getPrdNameLike
())){
if
(
StringUtils
.
isNotBlank
(
pqw
.
getPrdNameLike
()))
{
qw
.
like
(
PrdInfo:
:
getPrdName
,
pqw
.
getPrdNameLike
());
qw
.
like
(
PrdInfo:
:
getPrdName
,
pqw
.
getPrdNameLike
());
}
}
Page
<
PrdInfo
>
page
=
prdInfoMapper
.
selectPage
(
TableSupport
.
pageI
(),
qw
);
Page
<
PrdInfo
>
page
=
prdInfoMapper
.
selectPage
(
TableSupport
.
pageI
(),
qw
);
...
@@ -64,7 +64,17 @@ public class ProductDaoImpl implements IProductDao {
...
@@ -64,7 +64,17 @@ public class ProductDaoImpl implements IProductDao {
@Override
@Override
public
List
<
PrdInfoDto
>
selectListByCodes
(
List
<
String
>
prdCodes
)
{
public
List
<
PrdInfoDto
>
selectListByCodes
(
List
<
String
>
prdCodes
)
{
List
<
PrdInfo
>
prdInfos
=
prdInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
PrdInfo
>().
in
(
ObjectUtil
.
isNotEmpty
(
prdCodes
),
PrdInfo:
:
getPrdCode
,
prdCodes
));
List
<
PrdInfo
>
prdInfos
=
prdInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
PrdInfo
>().
in
(
ObjectUtil
.
isNotEmpty
(
prdCodes
),
PrdInfo:
:
getPrdCode
,
prdCodes
));
return
BeanUtils
.
transitionDtos
(
prdInfos
,
PrdInfoDto
.
class
);
return
BeanUtils
.
transitionDtos
(
prdInfos
,
PrdInfoDto
.
class
);
}
}
@Override
public
List
<
PrdInfo
>
selectProdSeries
()
{
List
<
PrdInfo
>
prdInfos
=
prdInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
PrdInfo
>()
.
select
(
PrdInfo:
:
getSeries
,
PrdInfo:
:
getPrdCode
,
PrdInfo:
:
getPrdName
)
.
groupBy
(
PrdInfo:
:
getSeries
,
PrdInfo:
:
getPrdCode
,
PrdInfo:
:
getPrdName
));
return
prdInfos
;
}
}
}
src/main/java/com/link/bi/domain/entity/CollectErrorLog.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.Map
;
/**
* CollectErrorInfo 类表示采集错误记录,与数据库表 market_bi.collect_error_info 相对应。
* 包含了采集错误记录的各种信息,如唯一键、入参信息、类型、采集时间、删除标志、创建和更新的用户及时间等。
*/
@TableName
(
value
=
"collect_error_log"
)
@Data
public
class
CollectErrorLog
{
/**
* 唯一键,自动递增
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
ceiId
;
/**
* 入参信息,存储为 JSON 格式
*/
private
Map
<
String
,
Object
>
param
;
/**
* 类型,如 xxljob、影刀等
*/
private
String
type
;
/**
* 采集时间
*/
private
Date
collectTime
;
/**
* 是否删除标志,'0' 表示未删除,'1' 表示已删除
*/
private
char
delFlag
;
/**
* 创建者
*/
private
String
createBy
;
/**
* 创建人 UserID
*/
private
Long
createUserId
;
/**
* 创建时间,默认为当前时间
*/
private
LocalDateTime
createTime
;
/**
* 更新者
*/
private
String
updateBy
;
/**
* 修改人 UserID
*/
private
Long
updateUserId
;
/**
* 更新时间,自动更新为当前时间
*/
private
LocalDateTime
updateTime
;
/**
* 采集批次
*/
private
String
batchNo
;
/**
* 本批次采集开始时间
*/
private
Date
startTime
;
/**
* 本批次采集结束时间
*/
private
Date
endTime
;
/**
* 错误信息
*/
private
String
errorMsg
;
}
src/main/java/com/link/bi/domain/entity/CollectOrderLog.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 采集订单日志信息
*
* @TableName collect_order_log_info
* @author lvbencai
* @date 2025-01-16 22:58:38
* @description
*/
@Data
@TableName
(
"collect_order_log"
)
public
class
CollectOrderLog
implements
Serializable
{
/**
* 唯一键,用于唯一标识采集订单日志信息记录
*/
@TableId
(
value
=
"cli_id"
,
type
=
IdType
.
AUTO
)
private
Long
cliId
;
private
String
method
;
/**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/
private
Integer
orderCount
;
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
private
Integer
orderDetailCount
;
/**
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
*/
private
String
batchNo
;
/**
* 采集的最新时间,代表上一次采集的结束时间,存储为日期时间类型
*/
private
Date
latestTime
;
/**
* 是否删除的标志,'0' 表示未删除,'1' 表示已删除,使用 utf8mb3 字符集和 utf8mb3_general_ci 校对规则
*/
private
String
delFlag
;
/**
* 创建者信息,存储为长度不超过 20 个字符的字符串
*/
private
String
createBy
;
/**
* 创建人的用户 ID,存储为长整型
*/
private
Long
createUserId
;
/**
* 创建时间,存储为日期时间类型,使用数据库的当前时间作为默认值
*/
private
Date
createTime
;
/**
* 更新者信息,存储为长度不超过 20 个字符的字符串
*/
private
String
updateBy
;
/**
* 修改人的用户 ID,存储为长整型
*/
private
Long
updateUserId
;
/**
* 更新时间,存储为日期时间类型,更新时自动更新为当前时间
*/
private
Date
updateTime
;
private
Integer
syncType
;
}
src/main/java/com/link/bi/domain/entity/EcBaStoreDailyData.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.sfa.common.core.annotation.Excel
;
import
com.sfa.common.core.annotation.Excel
;
...
@@ -24,6 +26,7 @@ public class EcBaStoreDailyData extends BaseDo
...
@@ -24,6 +26,7 @@ public class EcBaStoreDailyData extends BaseDo
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
/** id标识 */
/** id标识 */
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
ebtId
;
private
Long
ebtId
;
/** 年份 */
/** 年份 */
...
...
src/main/java/com/link/bi/domain/entity/FinanceBaseProduct.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* finance_base_product 表对应的 料号基本信息表。
* 主要字段实际成本、标准成本、规格、口味
* @author lvbencai
* @date 2025年01月07日10:04:25
*/
@TableName
(
value
=
"finance_base_product"
)
@Data
public
class
FinanceBaseProduct
{
// 唯一标识主键
@TableId
(
type
=
IdType
.
AUTO
)
private
Integer
fbpId
;
// 料号
private
String
prdCode
;
// 品名
private
String
prdName
;
// 规格
private
String
prdBarCode
;
// 实际成本
private
BigDecimal
actualCost
;
// 标准成本
private
BigDecimal
standardCost
;
// 一级分类
private
String
firstCategory
;
// 二级分类
private
String
secondCategory
;
// 规格
private
String
spec
;
// 口味
private
String
flavor
;
// 系列
private
String
series
;
// 产品分类编码
private
String
productClassificationCode
;
// 产品分类
private
String
productClassification
;
// 主分群码(重复字段,可根据实际需求调整)
private
String
mainGroupCode
;
// 主分群码名称
private
String
mainGroupName
;
// 料件类别(重复字段,可根据实际需求调整)
private
String
materialType
;
// 料件类别描述
private
String
materialTypeName
;
// 基础单位
private
String
basicUnit
;
// 生命周期状态
private
String
lifeCycleStatus
;
// 生命周期
private
String
lifeCycle
;
}
src/main/java/com/link/bi/domain/entity/FinanceBaseZbjType.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.time.LocalDateTime
;
/**
* finance_base_zbj_type 表对应的直播间分类细腻系表。
* 主要字段直播间渠道类型、分销商名称
* @author lvbcai
* @date 2025年01月07日10:04:25
*/
@TableName
(
value
=
"finance_base_zbj_type"
)
@Data
public
class
FinanceBaseZbjType
{
// 唯一键
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
fbztId
;
// 分销商名称
private
String
fenxiaoName
;
// 直播间渠道类型 有分销商id,不是以上几类的,统一为达人 没有分销商id的,默认为商城
private
String
zbjQdType
;
// 采集批次
private
String
batchNo
;
// 备注
private
String
remark
;
// 是否删除标志 0 未删除 1 已删除
private
Integer
delFlag
;
// 创建者
private
String
createBy
;
// 创建人 UserID
private
Long
createUserId
;
// 创建时间
private
LocalDateTime
createTime
;
// 更新者
private
String
updateBy
;
// 修改人 UserID
private
Long
updateUserId
;
// 更新时间
private
LocalDateTime
updateTime
;
}
src/main/java/com/link/bi/domain/entity/FinanceOrder.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 财务-订单数据实体类,对应数据库中的 finance_order 表
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName
(
value
=
"finance_order"
)
public
class
FinanceOrder
{
/**
* 订单唯一键
*/
@TableId
(
type
=
IdType
.
NONE
)
private
Long
tradeId
;
/**
* 订单编号(旺店通系统订单号)
*/
private
String
tradeNo
;
/**
* 平台 ID(请点击平台代码表查看对应关系)
*/
private
Integer
platformId
;
/**
* 仓库类型: 1、普通仓库,大于 1 为委外仓库(如京东仓储,物流宝等),如订单无仓库的话,则不返回该字段
*/
private
Integer
warehouseType
;
/**
* 原始单号(平台订单号),如果有多个,以","分隔,且以增序排列,不重复,过长将被裁剪
*/
private
String
srcTids
;
/**
* 平台支付帐号, (仅自有平台及线下平台返回,其他平台均不返回)
*/
private
String
payAccount
;
/**
* 订单状态: 4 线下退款; 5 已取消; 6 待转预订单(待审核); 7 待转已完成; 10 未付款; 12 待尾款; 15 等未付; 16 延时审核; 19 预订单前处理; 20 审核前处理; 21 自流转待发货; 23 异常订单; 24 换货预订单; 25 待处理预订单; 27 待分配预订单; 30 待客审; 35 待财审; 40 审核中; 55 已审核; 95 已发货; 96 成本确认(待录入计划成本,订单结算时有货品无计划成本); 101 已过账; 110 已完成
*/
private
Integer
tradeStatus
;
/**
* 订单类型: 1、网店销售; 2、线下订单; 3、售后换货; 4、批发业务; 7、现款销售; 8、分销订单; 101、自定义类型一; 102、自定义类型二; 103、自定义类型三; 104、自定义类型四; 105、自定义类型五; 106、自定义类型六; 107、自定义类型七; 108、自定义类型八; 109、自定义类型九; 110、自定义类型十(与 ERP 中自定义类型的映射关系,点击链接查看)
*/
private
Integer
tradeType
;
/**
* 发货条件: 1、款到发货; 2、货到付款(包含部分货到付款); 3、分期付款; 4、挂账
*/
private
Integer
deliveryTerm
;
/**
* 京东几环(淘宝模糊化后的买家昵称)
*/
private
String
receiverRing
;
/**
* 冻结原因
*/
private
String
freezeReason
;
/**
* 退款状态: 0、无退款; 1、申请退款; 2、部分退款; 3、全部退款
*/
private
Integer
refundStatus
;
/**
* 分销类别: 0、非分销订单; 1、代销; 2、经销
*/
private
Integer
fenxiaoType
;
/**
* 分销商昵称
*/
private
String
fenxiaoNick
;
/**
* 下单时间(毫秒级时间戳,例如:1631861379000)
*/
private
String
tradeTime
;
/**
* 付款时间,例如:2020 - 10 - 19 00:00:00
*/
private
String
payTime
;
/**
* 发货时间,订单未发货不返回该字段(毫秒级时间戳,例如:1631861379000)
*/
private
Date
consignTime
;
/**
* 客户网名(淘宝 ouid,淘系平台不返回), (仅自有平台及线下平台返回,其他平台均不返回)
*/
private
String
buyerNick
;
/**
* 收货人/收件人, (仅自有平台及线下平台返回,其他平台均不返回)
*/
private
String
receiverName
;
/**
* 省份 id,可参考城市代码表
*/
private
Integer
receiverProvince
;
/**
* 城市 id,可参考城市代码表
*/
private
Integer
receiverCity
;
/**
* 地区 id,可参考城市代码表
*/
private
Integer
receiverDistrict
;
/**
* 收件人地址, (仅自有平台及线下平台返回,其他平台均不返回)
*/
private
String
receiverAddress
;
/**
* 手机,(仅自有平台及线下平台返回,其他平台均不返回)
*/
private
String
receiverMobile
;
/**
* 固话, (仅自有平台及线下平台返回,其他平台均不返回)
*/
private
String
receiverTelno
;
/**
* 邮编
*/
private
String
receiverZip
;
/**
* 地区
*/
private
String
receiverArea
;
/**
* 大头笔
*/
private
String
receiverDtb
;
/**
* 异常订单原因(位运算): 2、修改地址; 4、修改发票; 8、更换仓库; 16、修改备注; 32、更换货品; 128、拦截赠品; 256、拦截换货; 512、买家留言变化; 1024、拦截平台已发货
*/
private
Integer
badReason
;
/**
* 物流单号
*/
private
String
logisticsNo
;
/**
* 买家留言
*/
private
String
buyerMessage
;
/**
* 客服备注
*/
private
String
csRemark
;
/**
* 标旗(1 红、2 黄、3 绿、4 蓝、5 紫 )
*/
private
Integer
remarkFlag
;
/**
* 打印备注
*/
private
String
printRemark
;
/**
* 货品种类数
*/
private
BigDecimal
goodsTypeCount
;
/**
* 货品总量
*/
private
BigDecimal
goodsCount
;
/**
* 总货款(折前总额)
*/
private
BigDecimal
goodsAmount
;
/**
* 邮费(买家支付邮费)
*/
private
BigDecimal
postAmount
;
/**
* 其他费用
*/
private
BigDecimal
otherAmount
;
/**
* 优惠
*/
private
BigDecimal
discount
;
/**
* 应收
*/
private
BigDecimal
receivable
;
/**
* COD 金额(货到付款金额)
*/
private
BigDecimal
codAmount
;
/**
* 买家 COD 费用
*/
private
BigDecimal
extCodFee
;
/**
* 货品预估成本
*/
private
BigDecimal
goodsCost
;
/**
* 预估邮资成本
*/
private
BigDecimal
postCost
;
/**
* 预估重量(kg)
*/
private
BigDecimal
weight
;
/**
* 预估毛利
*/
private
BigDecimal
profit
;
/**
* 税额
*/
private
BigDecimal
tax
;
/**
* 税率
*/
private
BigDecimal
taxRate
;
/**
* 佣金
*/
private
BigDecimal
commission
;
/**
* 发票类型: 0:不需要; 1:普通发票; 2:增值税普通发票; 3:增值税专用发票
*/
private
Integer
invoiceType
;
/**
* 发票抬头
*/
private
String
invoiceTitle
;
/**
* 发票内容
*/
private
String
invoiceContent
;
/**
* 业务员
*/
private
String
salesmanName
;
/**
* 审核人
*/
private
String
checkerName
;
/**
* 财审人
*/
private
String
fcheckerName
;
/**
* 签出人
*/
private
String
checkouterName
;
/**
* 出库单号(系统产生的出库单号)
*/
private
String
stockoutNo
;
/**
* 标记名称
*/
private
String
flagName
;
/**
* 订单来源: 1、API 抓单; 2、手工建单; 3、导入; 4、复制订单; 5、接口推送; 6、补发订单; 7、PDA 选货开单; 8、分销补发订单
*/
private
Integer
tradeFrom
;
/**
* 货品商家编码,多种货品为空,组合装时为组合装编码
*/
private
String
singleSpecNo
;
/**
* 原始货品数量
*/
private
BigDecimal
rawGoodsCount
;
/**
* 原始货品种类数
*/
private
Integer
rawGoodsTypeCount
;
/**
* 币种
*/
private
String
currency
;
/**
* 发票 ID(自增生成),0 代表没有发票或已取消/已冲红
*/
private
Integer
invoiceId
;
/**
* 版本号
*/
private
Integer
versionId
;
/**
* 修改时间,例如:2020 - 10 - 19 00:00:00
*/
private
Date
modified
;
/**
* 递交时间(毫秒级时间戳,例如:1631861379000)
*/
private
String
created
;
/**
* 审核时间
*/
private
String
checkTime
;
/**
* 证件类别
*/
private
Integer
idCardType
;
/**
* 店铺编号
*/
private
String
shopNo
;
/**
* 店铺名称
*/
private
String
shopName
;
/**
* 店铺备注
*/
private
String
shopRemark
;
/**
* 仓库编号,如订单无仓库的话,则不返回该字段
*/
private
String
warehouseNo
;
/**
* 客户姓名
*/
private
String
customerName
;
/**
* 客户编码
*/
private
String
customerNo
;
/**
* 物流公司名称
*/
private
String
logisticsName
;
/**
* 物流公司编号
*/
private
String
logisticsCode
;
/**
* 物流类型名称
*/
private
String
logisticsTypeName
;
/**
* 送货时间,例如:2020 - 10 - 19 00:00:00
*/
private
String
toDeliverTime
;
/**
* 计划发货时间
*/
private
String
delayToTime
;
/**
* 最晚发货时间
*/
private
String
estimateConsignTime
;
/**
* 店铺 id
*/
private
Integer
shopId
;
/**
* 仓库 id
*/
private
Integer
warehouseId
;
/**
* 体积
*/
private
BigDecimal
volume
;
/**
* 订单标签
*/
private
String
tradeLabel
;
/**
* 1:使用智选物流; 2:货品标签; 4:预订单自动激活失败; 16:订单货品指定批次; 32:平台自动流转仓库; 64:部分发货; 128:全部发货; 256:优先占用; 512:待分配转审核失败或订单审核失败; 1024:催未付款订单短信发送标记; 2048:拆分(在判断的时候使用&运算)
*/
private
Integer
tradeMask
;
/**
* 店铺平台 id
*/
private
Integer
shopPlatformId
;
/**
* 子平台 id
*/
private
Integer
subPlatformId
;
/**
* 包装
*/
private
String
packageName
;
/**
* 包装 id
*/
private
Integer
packageId
;
/**
* 包装成本
*/
private
BigDecimal
packageCost
;
/**
* 已付
*/
private
BigDecimal
paid
;
/**
* 大件类型: 1:普通套件; 2:独立套件; 3:分组单发,未使用; -1:非单发件 取子单中的最大值
*/
private
Integer
largeType
;
/**
* 赠品标记: 1:自动赠送; 2:手工赠送; 4:回购赠送; 8:平台赠送(注意:如果是 3,则表示既有自动赠送也有手工赠送“1 + 2”)
*/
private
Integer
giftMask
;
/**
* 客户 id
*/
private
Integer
customerId
;
/**
* 其他成本
*/
private
BigDecimal
otherCost
;
/**
* 不可合并拆分
*/
private
Boolean
isSealed
;
/**
* 客户类型(0:普通客户;1:分销商;2:线下批发)
*/
private
Integer
customerType
;
/**
* 物流公司 id
*/
private
Integer
logisticsId
;
/**
* 取消原因
*/
private
String
cancelReason
;
/**
* 驳回原因
*/
private
String
revertReason
;
/**
* 订单标签 mask
*/
private
String
newTradeLabel
;
/**
* 分销原始单号(无长度限制)
*/
private
String
fenxiaoTid
;
/**
* 是否删除标志 0 未删除 1 已删除
*/
private
String
delFlag
;
/**
* 创建者
*/
private
String
createBy
;
/**
* 创建人 UserID
*/
private
Long
createUserId
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新者
*/
private
String
updateBy
;
/**
* 修改人 UserID
*/
private
Long
updateUserId
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 采集批次
*/
private
String
batchNo
;
/**
* 本批次采集开始时间,例如:2020 - 10 - 19 00:00:00
*/
private
Date
startTime
;
/**
* 本批批次采集结束时间,例如:2020 - 10 - 19 00:00:00
*/
private
Date
endTime
;
/**
* 同步类型 ,接口为 1 手动同步,0 xxljob 自动同步
*/
private
Integer
syncType
;
}
src/main/java/com/link/bi/domain/entity/FinanceOrderDetail.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 旺店通订单明细表 wangdiantong_order_detail
*/
@TableName
(
value
=
"finance_order_detail"
)
@Data
public
class
FinanceOrderDetail
{
// 订单唯一键
private
Long
tradeId
;
// 订单明细唯一键
@TableId
(
type
=
IdType
.
NONE
)
private
Long
recId
;
// 平台ID
private
Integer
platformId
;
// 原始子单号
private
String
srcOid
;
// 原始单号
private
String
srcTid
;
// 赠品方式 0、非赠品
// 1、自动赠送 2、手工赠送 4、周期购赠送 8、平台赠送 32、阶梯满赠 64、CRM追加赠送 128 主品
private
Integer
giftType
;
// 0:未付款 1:部分付款 2:已付款(原始订单的支付状态)
private
Integer
payStatus
;
// 退款状态:
// 0、无退款
// 1、取消退款
// 2、申请退款
// 3、待退款
// 4、待还原
// 5、退款成功
// 6、已退(未付款关闭,未付款的取消了)
private
Integer
refundStatus
;
// 退款模式:
// 1、担保
// 2、非担保
// 3、在线非担保
private
Integer
guaranteeMode
;
// 如果没有对应的原始单明细,则返回0.
// 平台状态:
// 10、未确认
// 20、待尾款
// 30、待发货
// 40、部分发货
// 50、已发货
// 60、已签收
// 70、已完成
// 80、已退款
// 90、已关闭
private
Integer
platformStatus
;
// 发货条件:1、款到发货 2、货到付款(包含部分货到付款)
// 3、分期付款
private
Integer
deliveryTerm
;
// 数量
private
BigDecimal
num
;
// 标价,手工新建时使用货品属性中的“零售价”
private
BigDecimal
price
;
// 售后退款数量
private
BigDecimal
refundNum
;
// 成交价,原始单折扣及分摊之后的价格
private
BigDecimal
orderPrice
;
// 分摊后价格,进入ERP后再次调整的价格,默认值与order_price一致
private
BigDecimal
sharePrice
;
// 手工调整价,正数为加价,负数为减价,暂未处理
private
BigDecimal
adjust
;
// 优惠
private
BigDecimal
discount
;
// 分摊后总价=share_price*num
private
BigDecimal
shareAmount
;
// 税率
private
BigDecimal
taxRate
;
// 货品名称
private
String
goodsName
;
// 货品编号
private
String
goodsNo
;
// 规格名称
private
String
specName
;
// 商家编码
private
String
specNo
;
// 规格码
private
String
specCode
;
// 组合装编码
private
String
suiteNo
;
// 如果是组合装拆分的,此为组合装名称
private
String
suiteName
;
// 组合装数量,不受拆分合并影响
private
BigDecimal
suiteNum
;
// 组合装分摊后总价
private
BigDecimal
suiteAmount
;
// 组合装优惠
private
BigDecimal
suiteDiscount
;
// 平台货品名称
private
String
apiGoodsName
;
// 平台规格名称
private
String
apiSpecName
;
// 平台货品id
private
String
apiGoodsId
;
// 平台规格id
private
String
apiSpecId
;
// 货品id(系统货品主键)
private
Integer
goodsId
;
// 单品id(系统单品主键)
private
Integer
specId
;
// 佣金
private
BigDecimal
commission
;
// 货品类型
// 1销售商品
// 2原材料
// 3包装
// 4周转材料
// 5虚拟商品
// 6固定资产
// 0其它
private
Integer
goodsType
;
// 订单内部来源:
// 0:无来源
// 1:手机
// 2:聚划算
// 32:开具电子发票
// 2048:当日达
// 4096:次日达
// 8192:承诺时效
// 2097152:区域零售
// 4194304:拼多多厂家代打
// 8388608:周期购
// 1048576:预售单
// 33554432:前N有礼
// 524288:天猫物流升级
// 64:按需配送
// 256:承诺结构化/QIC
// 16384:商仓鸟配
private
Integer
fromMask
;
// 子单备注
private
String
remark
;
// 修改时间(毫秒级时间戳,例如:1631861379000)
private
String
modified
;
// 创建时间(毫秒级时间戳,例如:1631861379000)
private
String
created
;
// 自定义属性1
private
String
prop1
;
// 自定义属性2
private
String
prop2
;
// 货品重量(子单预估货品总重量)
private
BigDecimal
weight
;
// 图片路径
private
String
imgUrl
;
// 实发数量(此数量为发货数量,删除操作等于将此值设置为0)
private
BigDecimal
actualNum
;
// 条码
private
String
barcode
;
// 已付
private
BigDecimal
paid
;
// 组合装id
private
Integer
suiteId
;
// bind_oid
private
String
bindOid
;
// 打印组合装
// 0:组合装明细
// 1:组合装及明细
// 2:组合装
private
Integer
printSuiteMode
;
// 1:天猫物流升级-顺丰配送
// 2:需要回传
// 4:天猫物流升级-按需配送
// 8:天猫物流升级-承诺发货时效
// 16:天猫物流升级-承诺达时效
// 32:天猫物流升级-预售下沉
// 64:天猫物流升级-预计到货时效
// 128:天猫物流升级-配送线路异常
// 1024:定金链接
// 2048:补款链接
// 4096:确认收货
// (mask类型值. 在判断的时候使用&运算)
private
Integer
flag
;
// 库存保留情况
// 0:未保留(取消的订单或完成)
// 1:无库存记录
// 2:未付款
// 3:已保留待审核
// 4:待发货
// 5:预订单库存
private
Integer
stockState
;
// 平台已发货
private
boolean
isConsigned
;
// 是否付款
private
Integer
isReceived
;
// 平台类目主键
private
Integer
cid
;
// 最后更新时间,DateTime格式
private
Date
modifiedDate
;
// 创建时间,DateTime格式
private
String
createdDate
;
// 分摊邮费
private
BigDecimal
sharePostPrice
;
// 发票内容
private
String
invoiceContent
;
// 支付时间,DateTime格式,取自原始订单支付时间
private
Date
payTime
;
// 货品简称
private
String
shortName
;
// 分销商昵称
private
String
fenxiaoNick
;
// 分销商id
private
String
fenxiaoId
;
// 分销商name
private
String
fenxiaoName
;
// 批次号
private
String
batchNo
;
// 采集开始时间
private
Date
startTime
;
// 采集结束时间
private
Date
endTime
;
// 2025年01月13日新增字段
private
String
tradeNo
;
// 店铺编号
private
String
shopNo
;
// 店铺名称
private
String
shopName
;
// 店铺备注
private
String
shopRemark
;
// 交易状态
private
String
tradeStatus
;
// 交易时间
private
String
tradeTime
;
// 发货时间,订单未发货不返回该字段(毫秒级时间戳,例如:1631861379000)
private
Date
consignTime
;
// 收货地区
private
String
receiverArea
;
// 主播名称--来自备注字段
private
String
zbjName
;
// 主播ID--来自备注字段
private
String
zbjId
;
// 主播直播ID--来自备注字段
private
String
zbjZbId
;
// 主播销售类型--来自备注字段
private
String
zbjSaleType
;
// 主播渠道类型--来自备注字段
private
String
zbjQdType
;
// 应收金额
private
BigDecimal
receivable
;
// ERP规格名称 --来自T100的定义
private
String
specNameErp
;
// ERP口味 --来自T100的定义
private
String
flavorErp
;
// 同步类型,接口为1手动同步,0 xxljob自动同步,
private
Integer
syncType
;
// 实际成本
private
BigDecimal
actualCost
;
// 标准成本
private
BigDecimal
standardCost
;
// 系列
private
String
series
;
// 实际成本*num 实际总成本
private
BigDecimal
sumActualCost
;
// 标准成本*num 标准总成本
private
BigDecimal
sumStandardCost
;
/**
* 以下字段用于查询出来的聚合数据
*/
// 分摊后总价sum
@TableField
(
exist
=
false
)
private
BigDecimal
shareAmountSum
;
//实际总成本sum
@TableField
(
exist
=
false
)
private
BigDecimal
sumActualCostSum
;
//标准总成本sum
@TableField
(
exist
=
false
)
private
BigDecimal
sumStandardCostSum
;
@TableField
(
exist
=
false
)
private
String
queryType
;
/**
* 是否删除标志0未删除1已删除
*/
private
String
delFlag
;
}
src/main/java/com/link/bi/domain/entity/OppoCmm.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.sfa.common.core.annotation.Excel
;
import
com.sfa.common.core.annotation.Excel
;
...
@@ -25,6 +27,7 @@ public class OppoCmm implements Serializable {
...
@@ -25,6 +27,7 @@ public class OppoCmm implements Serializable {
/**
/**
* id标识
* id标识
*/
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
cmmId
;
private
Long
cmmId
;
/**
/**
...
...
src/main/java/com/link/bi/domain/entity/OppoSycm.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.sfa.common.core.annotation.Excel
;
import
com.sfa.common.core.annotation.Excel
;
...
@@ -24,6 +26,7 @@ public class OppoSycm implements Serializable {
...
@@ -24,6 +26,7 @@ public class OppoSycm implements Serializable {
/**
/**
* id标识
* id标识
*/
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
sycmId
;
private
Long
sycmId
;
/**
/**
...
...
src/main/java/com/link/bi/domain/entity/OppoSycmStore.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
entity
;
package
com
.
link
.
bi
.
domain
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.sfa.common.core.annotation.Excel
;
import
com.sfa.common.core.annotation.Excel
;
...
@@ -25,6 +27,7 @@ public class OppoSycmStore extends BaseDo implements Serializable {
...
@@ -25,6 +27,7 @@ public class OppoSycmStore extends BaseDo implements Serializable {
/**
/**
* id标识
* id标识
*/
*/
@TableId
(
type
=
IdType
.
AUTO
)
private
Long
sycmsId
;
private
Long
sycmsId
;
/**
/**
...
...
src/main/java/com/link/bi/domain/mapper/CollectOrderLogMapper.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.bi.domain.entity.CollectOrderLog
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
CollectOrderLogMapper
extends
BaseMapper
<
CollectOrderLog
>
{
}
src/main/java/com/link/bi/domain/mapper/FinanceBaseProductMapper.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.bi.domain.entity.FinanceBaseProduct
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
FinanceBaseProductMapper
extends
BaseMapper
<
FinanceBaseProduct
>
{
}
src/main/java/com/link/bi/domain/mapper/FinanceBaseZbjTypeMapper.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
@Mapper
public
interface
FinanceBaseZbjTypeMapper
extends
BaseMapper
<
FinanceBaseZbjType
>
{
void
saveOrUpdateBatch
(
List
<
FinanceBaseZbjType
>
batchLists
);
}
src/main/java/com/link/bi/domain/mapper/FinanceOrderDetailMapper.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.bi.domain.entity.FinanceOrderDetail
;
import
com.link.bi.domain.wq.FinanceCostWq
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
@Mapper
public
interface
FinanceOrderDetailMapper
extends
BaseMapper
<
FinanceOrderDetail
>
{
List
<
FinanceOrderDetail
>
selectBiFinanceCostList
(
@Param
(
value
=
"wq"
)
FinanceCostWq
wq
);
List
<
FinanceOrderDetail
>
selectBiFinanceCostDetailList
(
@Param
(
value
=
"wq"
)
FinanceCostWq
wq
);
}
src/main/java/com/link/bi/domain/mapper/FinanceOrderMapper.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.bi.domain.entity.FinanceOrder
;
import
org.apache.ibatis.annotations.Mapper
;
@Mapper
public
interface
FinanceOrderMapper
extends
BaseMapper
<
FinanceOrder
>
{
}
src/main/java/com/link/bi/domain/mapper/PrdInfoMapper.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
mapper
;
package
com
.
link
.
bi
.
domain
.
mapper
;
import
com.link.bi.domain.entity.PrdInfo
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.link.bi.domain.entity.PrdInfo
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.apache.ibatis.annotations.Mapper
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
...
@@ -14,7 +14,6 @@ import org.springframework.stereotype.Repository;
...
@@ -14,7 +14,6 @@ import org.springframework.stereotype.Repository;
@Repository
@Repository
@Mapper
@Mapper
public
interface
PrdInfoMapper
extends
BaseMapper
<
PrdInfo
>
{
public
interface
PrdInfoMapper
extends
BaseMapper
<
PrdInfo
>
{
}
}
...
...
src/main/java/com/link/bi/domain/wq/FinanceCostWq.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
domain
.
wq
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2024-11-22 17
* @describe :
*/
@Data
public
class
FinanceCostWq
{
// 入参 时间开始时间
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
Integer
pageNum
;
private
Integer
pageSize
;
// 可以按照直播间类型和系列展开 null 不是展开查询 0 直播间类 1 系列
private
Integer
subType
;
// 聚合的维度
// 直播间类型
private
Boolean
zbjQdTypeAll
;
// 入参 口味
private
Boolean
flavorAll
;
// 入参 规格
private
Boolean
specNameAll
;
// 入参 系列
private
Boolean
seriesAll
;
// 入参 商品名称
private
Boolean
goodsNameAll
;
// 查询详情时 过滤数据
private
String
fenxiaoId
;
}
src/main/java/com/link/bi/pojo/request/FinanceBaseZbjTypeListVo.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
request
;
import
lombok.Data
;
/**
* 财务成本页面下拉选择框搜索的通用vo
*/
@Data
public
class
FinanceBaseZbjTypeListVo
{
private
String
zbjQdType
;
}
src/main/java/com/link/bi/pojo/request/FinanceBaseZbjTypeVo.java
0 → 100644
浏览文件 @
ed11196e
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
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
request
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
FinanceCostVo
{
// 平台id
private
String
platformId
;
// 商铺
private
List
<
String
>
shopNo
;
// 入参 分页当前页
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/FinanceSelectCommonVo.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
request
;
import
lombok.Data
;
/**
* 财务成本页面下拉选择框搜索的通用vo
*/
@Data
public
class
FinanceSelectCommonVo
{
private
String
keyword
;
}
src/main/java/com/link/bi/pojo/response/CollectOrderLogListDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 采集订单日志信息
*
* @author lvbencai
* @date a
* @description
*/
@Data
public
class
CollectOrderLogListDto
implements
Serializable
{
/**
* 唯一键,用于唯一标识采集订单日志信息记录
*/
private
Long
cliId
;
/**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/
private
Integer
orderCount
;
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
private
Integer
orderDetailCount
;
/**
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
*/
private
String
batchNo
;
/**
* 采集的最新时间,代表上一次采集的结束时间,存储为日期时间类型
*/
private
Date
latestTime
;
/**
* 是否删除的标志,'0' 表示未删除,'1' 表示已删除,使用 utf8mb3 字符集和 utf8mb3_general_ci 校对规则
*/
private
String
delFlag
;
/**
* 创建者信息,存储为长度不超过 20 个字符的字符串
*/
private
String
createBy
;
/**
* 创建人的用户 ID,存储为长整型
*/
private
Long
createUserId
;
/**
* 创建时间,存储为日期时间类型,使用数据库的当前时间作为默认值
*/
private
Date
createTime
;
/**
* 更新者信息,存储为长度不超过 20 个字符的字符串
*/
private
String
updateBy
;
/**
* 修改人的用户 ID,存储为长整型
*/
private
Long
updateUserId
;
/**
* 更新时间,存储为日期时间类型,更新时自动更新为当前时间
*/
private
Date
updateTime
;
private
Integer
syncType
;
}
src/main/java/com/link/bi/pojo/response/FinanceBaseProductDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 旺店通订单
*
* @author lvbencai
* @date 2025年02月26日17:21:01
*/
@Data
public
class
FinanceBaseProductDto
{
// 唯一标识主键
private
Integer
fbpId
;
// 料号
private
String
prdCode
;
// 品名
private
String
prdName
;
// 规格
private
String
prdBarCode
;
// 实际成本
private
BigDecimal
actualCost
;
// 标准成本
private
BigDecimal
standardCost
;
// 一级分类
private
String
firstCategory
;
// 二级分类
private
String
secondCategory
;
// 规格
private
String
spec
;
// 口味
private
String
flavor
;
// 系列
private
String
series
;
// 产品分类编码
private
String
productClassificationCode
;
// 产品分类
private
String
productClassification
;
// 主分群码(重复字段,可根据实际需求调整)
private
String
mainGroupCode
;
// 主分群码名称
private
String
mainGroupName
;
// 料件类别(重复字段,可根据实际需求调整)
private
String
materialType
;
// 料件类别描述
private
String
materialTypeName
;
// 基础单位
private
String
basicUnit
;
// 生命周期状态
private
String
lifeCycleStatus
;
// 生命周期
private
String
lifeCycle
;
}
src/main/java/com/link/bi/pojo/response/FinanceBaseProductListDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
/**
* 财务成本计算基础产品信息列表DTO
* @date : 2025-01-15 17:01:00
* @author : lvbencai
*/
@Data
public
class
FinanceBaseProductListDto
{
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
Integer
fbpId
;
// 料号
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
prdCode
;
// 品名
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
prdName
;
// 规格
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
spec
;
// 口味
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
flavor
;
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
series
;
}
src/main/java/com/link/bi/pojo/response/FinanceBaseZbjTypeImportDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
/**
* 财务订单明细聚合查询DTO
* @date : 2025-01-15 15:30:05
* @author : lvbencai
*/
@Data
public
class
FinanceBaseZbjTypeImportDto
{
// 分销商名称
@ExcelProperty
(
"分销商名称"
)
private
String
fenxiaoName
;
// 直播间渠道类型 有分销商id,不是以上几类的,统一为达人 没有分销商id的,默认为商城
@ExcelProperty
(
"渠道整理"
)
private
String
zbjQdType
;
}
src/main/java/com/link/bi/pojo/response/FinanceBiListDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 财务订单明细聚合查询DTO
* @date : 2025-01-15 15:30:05
* @author : lvbencai
*/
@Data
public
class
FinanceBiListDto
{
// 前端展示用
private
String
uid
;
// 主播渠道类型--来自备注字段
private
String
zbjQdType
;
// 分销商id
private
String
fenxiaoId
;
// 分销商name
private
String
fenxiaoName
;
// 货品名称
private
String
goodsName
;
// 货品编号
private
String
goodsNo
;
// ERP规格名称 --来自T100的定义
private
String
specNameErp
;
// ERP口味 --来自T100的定义
private
String
flavorErp
;
// 分摊后总价
private
BigDecimal
shareAmountSum
;
// 实际成本
private
BigDecimal
actualCostSum
;
// 标准成本
private
BigDecimal
standardCostSum
;
// 实际成本毛利
private
BigDecimal
actualCostGrossProfitSum
;
// 标准成本毛利
private
BigDecimal
standardCostGrossProfitSum
;
}
src/main/java/com/link/bi/pojo/response/FinanceExportBiListDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
lombok.Data
;
import
java.math.BigDecimal
;
/**
* 财务订单明细聚合查询DTO
* @date : 2025-01-15 15:30:05
* @author : lvbencai
*/
@Data
public
class
FinanceExportBiListDto
{
// 前端展示用
@ExcelProperty
(
value
=
"唯一值"
)
private
String
uid
;
// 主播渠道类型--来自备注字段
@ExcelProperty
(
"主播间分类"
)
private
String
zbjQdType
;
// 分销商id
@ExcelProperty
(
"分销商id"
)
private
String
fenxiaoId
;
// 分销商name
@ExcelProperty
(
"分销商名称"
)
private
String
fenxiaoName
;
// 货品名称
@ExcelProperty
(
"商品名称"
)
private
String
goodsName
;
// 货品编号
@ExcelProperty
(
"商品编号"
)
private
String
goodsNo
;
// ERP规格名称 --来自T100的定义
@ExcelProperty
(
"规格"
)
private
String
specNameErp
;
// ERP口味 --来自T100的定义
@ExcelProperty
(
"口味"
)
private
String
flavorErp
;
// 分摊后总价
@ExcelProperty
(
"分摊后总价"
)
private
BigDecimal
shareAmountSum
;
// 实际成本
@ExcelProperty
(
"实际成本"
)
private
BigDecimal
actualCostSum
;
// 标准成本
@ExcelProperty
(
"标准成本"
)
private
BigDecimal
standardCostSum
;
// 实际成本毛利
@ExcelProperty
(
"实际成本毛利"
)
private
BigDecimal
actualCostGrossProfitSum
;
// 标准成本毛利
@ExcelProperty
(
"标准成本毛利"
)
private
BigDecimal
standardCostGrossProfitSum
;
}
src/main/java/com/link/bi/pojo/response/FinanceExportOrderDetailListDto.java
0 → 100644
浏览文件 @
ed11196e
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
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* 财务聚合后查看的详情信息,来自订单明细DTO
* @date : 2025-01-15 17:01:00
* @author : lvbencai
*/
@Data
public
class
FinanceOrderDetailListDto
{
// 订单编号
private
String
tradeNo
;
// 店铺名称
private
String
shopName
;
// 原始单号
private
String
srcTid
;
// 原始子单号
private
String
srcOid
;
// 订单状态
private
String
tradeStatus
;
// 交易时间
private
String
tradeTime
;
// 付款时间
private
Date
payTime
;
// 发货时间
private
Date
consignTime
;
// 省市县(收货地区)
private
String
receiverArea
;
// 备注
private
String
remark
;
// 应收金额
private
BigDecimal
receivable
;
// 货品编号
private
String
goodsNo
;
// 货品名称
private
String
goodsName
;
// 规格名称
private
String
specName
;
// 分类(货品类型)
private
Integer
goodsType
;
// 数量
private
BigDecimal
num
;
// 优惠
private
BigDecimal
discount
;
// 分摊后总价
private
BigDecimal
shareAmount
;
// 组合装编码
private
String
suiteNo
;
// 组合装名称
private
String
suiteName
;
// 组合装数量
private
BigDecimal
suiteNum
;
// 赠品方式
private
Integer
giftType
;
// 分销商名称
private
String
fenxiaoName
;
// 分销商编号
private
String
fenxiaoId
;
// 平台货品名称
private
String
apiGoodsName
;
}
src/main/java/com/link/bi/pojo/response/FinanceZbjTypeListDto.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
pojo
.
response
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
/**
* 财务订单明细对应的直播间类型
* @date : 2025-01-15 17:01:00
* @author : lvbencai
*/
@Data
public
class
FinanceZbjTypeListDto
{
// 分销商名称
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
Long
fbztId
;
// 分销商名称
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
private
String
fenxiaoName
;
// 直播间渠道类型 有分销商id,不是以上几类的,统一为达人 没有分销商id的,默认为商城
private
String
zbjQdType
;
}
src/main/java/com/link/bi/service/CollectOrderLogInfoService.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.link.bi.domain.entity.CollectOrderLog
;
import
java.util.Date
;
import
java.util.List
;
public
interface
CollectOrderLogInfoService
{
List
<
CollectOrderLog
>
list
(
Wrapper
<
CollectOrderLog
>
queryWrapper
);
Date
selectOrderSyncLatest
(
Integer
syncType
);
}
src/main/java/com/link/bi/service/FinanceBaseProductService.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
import
com.link.bi.pojo.response.FinanceBaseProductDto
;
import
com.link.bi.pojo.response.FinanceBaseProductListDto
;
import
java.util.List
;
import
java.util.Map
;
public
interface
FinanceBaseProductService
{
Map
<
String
,
FinanceBaseProductDto
>
selectBaseProduct
();
List
<
FinanceBaseProductListDto
>
flavorList
(
FinanceSelectCommonVo
commonVo
);
List
<
FinanceBaseProductListDto
>
specList
(
FinanceSelectCommonVo
commonVo
);
List
<
FinanceBaseProductListDto
>
productNameList
(
FinanceSelectCommonVo
commonVo
);
List
<
FinanceBaseProductListDto
>
seriesList
(
FinanceSelectCommonVo
commonVo
);
}
src/main/java/com/link/bi/service/FinanceBaseZbjTypeService.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.link.bi.pojo.request.FinanceBaseZbjTypeListVo
;
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
;
public
interface
FinanceBaseZbjTypeService
{
Map
<
String
,
String
>
selectBaseZbjType
();
IPage
<
FinanceZbjTypeListDto
>
pageFinanceBaseZbjType
(
String
keyword
);
List
<
FinanceZbjTypeListDto
>
baseZbjTypeList
(
FinanceSelectCommonVo
commonVo
);
List
<
FinanceZbjTypeListDto
>
baseZbjTypeAllList
(
FinanceBaseZbjTypeListVo
commonVo
);
String
importData
(
MultipartFile
file
);
}
src/main/java/com/link/bi/service/FinanceOrderDetailService.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
;
import
com.github.pagehelper.PageInfo
;
import
com.link.bi.pojo.request.FinanceCostVo
;
import
com.link.bi.pojo.response.FinanceBiListDto
;
import
com.link.bi.pojo.response.FinanceOrderDetailListDto
;
import
javax.servlet.http.HttpServletResponse
;
public
interface
FinanceOrderDetailService
{
PageInfo
<
FinanceBiListDto
>
selectBiFinanceCostList
(
FinanceCostVo
financeCostVo
);
PageInfo
<
FinanceOrderDetailListDto
>
selectBiFinanceCostDetailPage
(
FinanceCostVo
financeCostVo
);
void
exportBiFinanceCostList
(
FinanceCostVo
financeCostVo
,
HttpServletResponse
response
);
}
src/main/java/com/link/bi/service/FinanceOrderService.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
;
public
interface
FinanceOrderService
{
}
src/main/java/com/link/bi/service/IEcGoodsSupplyDemandService.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
;
package
com
.
link
.
bi
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.link.bi.domain.entity.EcGoodsSupplyDemand
;
import
com.link.bi.domain.entity.EcGoodsSupplyDemand
;
import
com.link.bi.domain.wq.MarketDetailWq
;
import
com.link.bi.domain.wq.MarketDetailWq
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
...
@@ -15,7 +14,7 @@ import java.util.Map;
...
@@ -15,7 +14,7 @@ import java.util.Map;
* @author admin
* @author admin
* @date 2024-12-05
* @date 2024-12-05
*/
*/
public
interface
IEcGoodsSupplyDemandService
extends
IService
<
EcGoodsSupplyDemand
>
{
public
interface
IEcGoodsSupplyDemandService
{
List
<
EcGoodsSupplyDemand
>
importData
(
MultipartFile
ecGoodsSupplyDemand
,
Integer
year
);
List
<
EcGoodsSupplyDemand
>
importData
(
MultipartFile
ecGoodsSupplyDemand
,
Integer
year
);
...
...
src/main/java/com/link/bi/service/IProductService.java
浏览文件 @
ed11196e
...
@@ -5,6 +5,7 @@ import com.link.bi.pojo.response.PrdInfoDto;
...
@@ -5,6 +5,7 @@ import com.link.bi.pojo.response.PrdInfoDto;
import
com.sfa.common.core.web.domain.PageInfo
;
import
com.sfa.common.core.web.domain.PageInfo
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author : liqiulin
* @author : liqiulin
...
@@ -18,4 +19,6 @@ public interface IProductService {
...
@@ -18,4 +19,6 @@ public interface IProductService {
PageInfo
productPage
(
ProductVo
productVo
);
PageInfo
productPage
(
ProductVo
productVo
);
List
<
PrdInfoDto
>
selectListByCodes
(
List
<
String
>
codeLists
);
List
<
PrdInfoDto
>
selectListByCodes
(
List
<
String
>
codeLists
);
Map
<
String
,
String
>
selectProdSeries
();
}
}
src/main/java/com/link/bi/service/impl/CollectOrderLogInfoServiceImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.link.bi.domain.dao.CollectOrderLogDao
;
import
com.link.bi.domain.entity.CollectOrderLog
;
import
com.link.bi.service.CollectOrderLogInfoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
@Service
public
class
CollectOrderLogInfoServiceImpl
implements
CollectOrderLogInfoService
{
@Autowired
private
CollectOrderLogDao
dao
;
@Override
public
List
<
CollectOrderLog
>
list
(
Wrapper
<
CollectOrderLog
>
queryWrapper
)
{
return
dao
.
list
(
queryWrapper
);
}
/**
* 查询最新修改日期
* @return
*/
@Override
public
Date
selectOrderSyncLatest
(
Integer
syncType
)
{
// 查询最新发货日期
Date
date
=
dao
.
selectOrderSyncLatest
(
syncType
);
return
date
;
}
}
src/main/java/com/link/bi/service/impl/EcGoodsSupplyDemandServiceImpl.java
浏览文件 @
ed11196e
...
@@ -3,11 +3,9 @@ package com.link.bi.service.impl;
...
@@ -3,11 +3,9 @@ package com.link.bi.service.impl;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.link.bi.config.listener.EcGoodsSupplyDemandListener
;
import
com.link.bi.config.listener.EcGoodsSupplyDemandListener
;
import
com.link.bi.domain.dao.IEcGoodsSupplyDemandDao
;
import
com.link.bi.domain.dao.IEcGoodsSupplyDemandDao
;
import
com.link.bi.domain.entity.EcGoodsSupplyDemand
;
import
com.link.bi.domain.entity.EcGoodsSupplyDemand
;
import
com.link.bi.domain.mapper.EcGoodsSupplyDemandMapper
;
import
com.link.bi.domain.wq.MarketDetailWq
;
import
com.link.bi.domain.wq.MarketDetailWq
;
import
com.link.bi.pojo.response.PrdInfoDto
;
import
com.link.bi.pojo.response.PrdInfoDto
;
import
com.link.bi.service.IEcGoodsSupplyDemandService
;
import
com.link.bi.service.IEcGoodsSupplyDemandService
;
...
@@ -31,7 +29,7 @@ import java.util.Map;
...
@@ -31,7 +29,7 @@ import java.util.Map;
*/
*/
@Service
@Service
@Slf4j
@Slf4j
public
class
EcGoodsSupplyDemandServiceImpl
extends
ServiceImpl
<
EcGoodsSupplyDemandMapper
,
EcGoodsSupplyDemand
>
implements
IEcGoodsSupplyDemandService
{
public
class
EcGoodsSupplyDemandServiceImpl
implements
IEcGoodsSupplyDemandService
{
@Autowired
@Autowired
IEcGoodsSupplyDemandDao
demandDao
;
IEcGoodsSupplyDemandDao
demandDao
;
...
...
src/main/java/com/link/bi/service/impl/FinanceBaseProductServiceImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.link.bi.domain.dao.IFinanceBaseProductDao
;
import
com.link.bi.domain.entity.FinanceBaseProduct
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
import
com.link.bi.pojo.response.FinanceBaseProductDto
;
import
com.link.bi.pojo.response.FinanceBaseProductListDto
;
import
com.link.bi.service.FinanceBaseProductService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
/**
* 旺店通订单Service业务层处理
*
* @author lvbencai
* @date 2025年01月07日17:00:16
*/
@DS
(
"bi"
)
@Slf4j
@Service
public
class
FinanceBaseProductServiceImpl
implements
FinanceBaseProductService
{
@Autowired
private
IFinanceBaseProductDao
dao
;
@Override
public
Map
<
String
,
FinanceBaseProductDto
>
selectBaseProduct
()
{
// 查询所有商品
List
<
FinanceBaseProductDto
>
list
=
dao
.
list
(
new
LambdaQueryWrapper
<>());
// 以料号为key,商品对象为value,放入map中
Map
<
String
,
FinanceBaseProductDto
>
map
=
list
.
stream
()
.
collect
(
HashMap:
:
new
,
(
k
,
v
)
->
k
.
put
(
v
.
getPrdCode
(),
v
),
HashMap:
:
putAll
);
return
map
;
}
@Override
public
List
<
FinanceBaseProductListDto
>
flavorList
(
FinanceSelectCommonVo
commonVo
)
{
LambdaQueryWrapper
<
FinanceBaseProduct
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
FinanceBaseProduct:
:
getFlavor
);
queryWrapper
.
like
(
commonVo
.
getKeyword
()
!=
null
&&
!
commonVo
.
getKeyword
().
isEmpty
(),
FinanceBaseProduct:
:
getFlavor
,
commonVo
.
getKeyword
());
queryWrapper
.
groupBy
(
FinanceBaseProduct:
:
getFlavor
);
queryWrapper
.
orderByDesc
(
FinanceBaseProduct:
:
getFlavor
);
List
<
FinanceBaseProductDto
>
list
=
dao
.
list
(
queryWrapper
);
// 转化成List<FinanceZbjTypeListDto>
List
<
FinanceBaseProductListDto
>
collect
=
list
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
item
->
{
FinanceBaseProductListDto
dto
=
new
FinanceBaseProductListDto
();
dto
.
setFbpId
(
item
.
getFbpId
());
dto
.
setPrdCode
(
item
.
getPrdCode
());
dto
.
setPrdName
(
item
.
getPrdName
());
dto
.
setFlavor
(
item
.
getFlavor
());
return
dto
;
}).
collect
(
Collectors
.
toList
());
return
collect
;
}
@Override
public
List
<
FinanceBaseProductListDto
>
specList
(
FinanceSelectCommonVo
commonVo
)
{
LambdaQueryWrapper
<
FinanceBaseProduct
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
FinanceBaseProduct:
:
getSpec
);
queryWrapper
.
like
(
commonVo
.
getKeyword
()
!=
null
&&
!
commonVo
.
getKeyword
().
isEmpty
(),
FinanceBaseProduct:
:
getSpec
,
commonVo
.
getKeyword
());
queryWrapper
.
groupBy
(
FinanceBaseProduct:
:
getSpec
);
queryWrapper
.
orderByDesc
(
FinanceBaseProduct:
:
getSpec
);
List
<
FinanceBaseProductDto
>
list
=
dao
.
list
(
queryWrapper
);
// 转化成List<FinanceZbjTypeListDto>
List
<
FinanceBaseProductListDto
>
collect
=
list
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
item
->
{
FinanceBaseProductListDto
dto
=
new
FinanceBaseProductListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
return
dto
;
}).
collect
(
Collectors
.
toList
());
return
collect
;
}
@Override
public
List
<
FinanceBaseProductListDto
>
productNameList
(
FinanceSelectCommonVo
commonVo
)
{
LambdaQueryWrapper
<
FinanceBaseProduct
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
FinanceBaseProduct:
:
getPrdName
);
queryWrapper
.
like
(
commonVo
.
getKeyword
()
!=
null
&&
!
commonVo
.
getKeyword
().
isEmpty
(),
FinanceBaseProduct:
:
getPrdName
,
commonVo
.
getKeyword
());
queryWrapper
.
groupBy
(
FinanceBaseProduct:
:
getPrdName
);
queryWrapper
.
orderByDesc
(
FinanceBaseProduct:
:
getPrdName
);
List
<
FinanceBaseProductDto
>
list
=
dao
.
list
(
queryWrapper
);
// 转化成List<FinanceZbjTypeListDto>
List
<
FinanceBaseProductListDto
>
collect
=
list
.
stream
().
map
(
item
->
{
FinanceBaseProductListDto
dto
=
new
FinanceBaseProductListDto
();
dto
.
setFbpId
(
item
.
getFbpId
());
dto
.
setPrdCode
(
item
.
getPrdCode
());
dto
.
setPrdName
(
item
.
getPrdName
());
dto
.
setFlavor
(
item
.
getFlavor
());
return
dto
;
}).
collect
(
Collectors
.
toList
());
return
collect
;
}
@Override
public
List
<
FinanceBaseProductListDto
>
seriesList
(
FinanceSelectCommonVo
commonVo
)
{
LambdaQueryWrapper
<
FinanceBaseProduct
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
FinanceBaseProduct:
:
getSeries
);
queryWrapper
.
like
(
commonVo
.
getKeyword
()
!=
null
&&
!
commonVo
.
getKeyword
().
isEmpty
(),
FinanceBaseProduct:
:
getSeries
,
commonVo
.
getKeyword
());
queryWrapper
.
groupBy
(
FinanceBaseProduct:
:
getSeries
);
queryWrapper
.
orderByDesc
(
FinanceBaseProduct:
:
getSeries
);
List
<
FinanceBaseProductDto
>
list
=
dao
.
list
(
queryWrapper
);
// 转化成List<FinanceZbjTypeListDto>
List
<
FinanceBaseProductListDto
>
collect
=
list
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
item
->
{
FinanceBaseProductListDto
dto
=
new
FinanceBaseProductListDto
();
dto
.
setFbpId
(
item
.
getFbpId
());
dto
.
setPrdCode
(
item
.
getPrdCode
());
dto
.
setPrdName
(
item
.
getPrdName
());
dto
.
setFlavor
(
item
.
getFlavor
());
dto
.
setSeries
(
item
.
getSeries
());
return
dto
;
}).
collect
(
Collectors
.
toList
());
return
collect
;
}
}
src/main/java/com/link/bi/service/impl/FinanceBaseZbjTypeServiceImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.link.bi.config.listener.FinanceBaseZbjTypeListener
;
import
com.link.bi.domain.dao.IFinanceBaseZbjTypeDao
;
import
com.link.bi.domain.entity.FinanceBaseZbjType
;
import
com.link.bi.pojo.request.FinanceBaseZbjTypeListVo
;
import
com.link.bi.pojo.request.FinanceSelectCommonVo
;
import
com.link.bi.pojo.response.FinanceBaseZbjTypeImportDto
;
import
com.link.bi.pojo.response.FinanceZbjTypeListDto
;
import
com.link.bi.service.FinanceBaseZbjTypeService
;
import
com.sfa.common.core.utils.bean.BeanUtils
;
import
com.sfa.common.core.web.page.TableSupport
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.*
;
import
java.util.stream.Collectors
;
/**
* 旺店通订单Service业务层处理
*
* @author lvbencai
* @date 2025年01月07日17:00:16
*/
//@DS("bi")
@Service
@Slf4j
public
class
FinanceBaseZbjTypeServiceImpl
implements
FinanceBaseZbjTypeService
{
@Autowired
private
IFinanceBaseZbjTypeDao
dao
;
@Override
public
Map
<
String
,
String
>
selectBaseZbjType
()
{
List
<
FinanceBaseZbjType
>
list
=
dao
.
list
(
new
LambdaQueryWrapper
<>());
// 以fenxiaoName为key,直播间渠道类型为value,放入map中
Map
<
String
,
String
>
map
=
list
.
stream
()
.
collect
(
HashMap:
:
new
,
(
k
,
v
)
->
k
.
put
(
v
.
getFenxiaoName
(),
v
.
getZbjQdType
()),
HashMap:
:
putAll
);
return
map
;
}
/**
* 分页查询
*
* @param keyword
* @return
*/
@Override
public
IPage
<
FinanceZbjTypeListDto
>
pageFinanceBaseZbjType
(
String
keyword
)
{
QueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
=
new
QueryWrapper
<>();
if
(
keyword
!=
null
&&
!
keyword
.
isEmpty
())
{
queryWrapper
.
like
(
"zbj_qd_type"
,
keyword
);
}
Page
<
FinanceBaseZbjType
>
page
=
dao
.
page
(
TableSupport
.
pageI
(),
queryWrapper
);
Page
<
FinanceZbjTypeListDto
>
result
=
new
Page
<>();
BeanUtils
.
copyProperties
(
page
,
result
);
result
.
setRecords
(
page
.
getRecords
().
stream
().
map
(
item
->
{
FinanceZbjTypeListDto
dto
=
new
FinanceZbjTypeListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
return
dto
;
}).
collect
(
Collectors
.
toList
()));
result
.
setTotal
(
page
.
getTotal
());
result
.
setPages
(
page
.
getPages
());
result
.
setCurrent
(
page
.
getCurrent
());
return
result
;
}
/**
* 成本分析页面-查询下拉列表数据
*
* @param commonVo
* @return
*/
@Override
public
List
<
FinanceZbjTypeListDto
>
baseZbjTypeList
(
FinanceSelectCommonVo
commonVo
)
{
LambdaQueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
select
(
FinanceBaseZbjType:
:
getZbjQdType
);
queryWrapper
.
like
(
commonVo
.
getKeyword
()
!=
null
&&
!
commonVo
.
getKeyword
().
isEmpty
(),
FinanceBaseZbjType:
:
getZbjQdType
,
commonVo
.
getKeyword
());
queryWrapper
.
groupBy
(
FinanceBaseZbjType:
:
getZbjQdType
);
List
<
FinanceBaseZbjType
>
list
=
dao
.
list
(
queryWrapper
);
// 转化成List<FinanceZbjTypeListDto>
List
<
FinanceZbjTypeListDto
>
result
=
new
ArrayList
<>();
list
.
forEach
(
item
->
{
FinanceZbjTypeListDto
dto
=
new
FinanceZbjTypeListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
result
.
add
(
dto
);
});
return
result
;
}
/**
* 直播间分类页面-查询列表数据
*
* @param zbjTypeListVo
* @return
*/
@Override
public
List
<
FinanceZbjTypeListDto
>
baseZbjTypeAllList
(
FinanceBaseZbjTypeListVo
zbjTypeListVo
)
{
LambdaQueryWrapper
<
FinanceBaseZbjType
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
like
(
zbjTypeListVo
.
getZbjQdType
()
!=
null
&&
!
zbjTypeListVo
.
getZbjQdType
().
isEmpty
(),
FinanceBaseZbjType:
:
getZbjQdType
,
zbjTypeListVo
.
getZbjQdType
());
List
<
FinanceBaseZbjType
>
list
=
dao
.
list
(
queryWrapper
);
// 转化成List<FinanceZbjTypeListDto>
List
<
FinanceZbjTypeListDto
>
result
=
new
ArrayList
<>();
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
,
FinanceBaseZbjTypeImportDto
.
class
,
listener
).
sheet
().
doRead
();
List
<
FinanceBaseZbjTypeImportDto
>
importData
=
listener
.
getDataList
();
// 1. 解析Excel文件,将数据转换为FinanceBaseZbjType对象
List
<
FinanceBaseZbjType
>
dataList
=
importData
.
stream
().
map
(
item
->
{
FinanceBaseZbjType
zbjType
=
new
FinanceBaseZbjType
();
BeanUtils
.
copyProperties
(
item
,
zbjType
);
zbjType
.
setBatchNo
(
DateUtil
.
format
(
new
Date
(),
"yyyyMMddHHmmss"
));
return
zbjType
;
}).
collect
(
Collectors
.
toList
());
// 2. 删除数据库中不存在于Excel的数据
deleteAbsentProducts
(
dataList
);
// 4. 批量保存或更新数据
batchUpsertProducts
(
dataList
);
return
"文件解析并更新数据成功。"
;
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
return
"文件解析失败,请检查文件格式或内容。"
;
}
}
public
void
deleteAbsentProducts
(
List
<
FinanceBaseZbjType
>
dataList
)
{
// datalist 按照key为zbjQdType转成HashMap
Map
<
String
,
FinanceBaseZbjType
>
dataMap
=
dataList
.
stream
().
collect
(
Collectors
.
toMap
(
FinanceBaseZbjType:
:
getFenxiaoName
,
item
->
item
));
// 查询数据库中所有数据
List
<
FinanceBaseZbjType
>
allDbRecords
=
dao
.
list
(
new
LambdaQueryWrapper
<>());
// 找出数据库中存在但 Excel 中不存在的记录的 fbztId
List
<
Long
>
idsToDelete
=
new
ArrayList
<>();
for
(
FinanceBaseZbjType
dbRecord
:
allDbRecords
)
{
// 判断 是否匹配ZbjQdType
FinanceBaseZbjType
financeBaseZbjType
=
dataMap
.
get
(
dbRecord
.
getFenxiaoName
());
if
(
ObjectUtil
.
isEmpty
(
financeBaseZbjType
)
||
!
dbRecord
.
getZbjQdType
().
equals
(
financeBaseZbjType
.
getZbjQdType
()))
{
idsToDelete
.
add
(
dbRecord
.
getFbztId
());
}
}
// 删除这些记录
if
(!
idsToDelete
.
isEmpty
())
{
dao
.
removeByIds
(
idsToDelete
);
}
}
public
void
batchUpsertProducts
(
List
<
FinanceBaseZbjType
>
dataList
)
{
// 查询数据库中所有数据
List
<
FinanceBaseZbjType
>
allDbRecords
=
dao
.
list
(
new
LambdaQueryWrapper
<>());
// FbztId匹配到的更新,否则进行保存
List
<
FinanceBaseZbjType
>
recordsToSave
=
new
ArrayList
<>();
List
<
FinanceBaseZbjType
>
recordsToUpdate
=
new
ArrayList
<>();
dataList
.
forEach
(
data
->
{
FinanceBaseZbjType
existingRecord
=
allDbRecords
.
stream
()
.
filter
(
record
->
checkRecord
(
record
,
data
))
.
findFirst
()
.
orElse
(
null
);
if
(
existingRecord
!=
null
)
{
// 更新
BeanUtils
.
copyProperties
(
data
,
existingRecord
);
recordsToUpdate
.
add
(
existingRecord
);
}
else
{
// 保存
recordsToSave
.
add
(
data
);
}
});
// 批量保存
if
(!
recordsToSave
.
isEmpty
())
{
dao
.
saveBatch
(
recordsToSave
);
}
// 批量更新
if
(!
recordsToUpdate
.
isEmpty
())
{
dao
.
updateBatchById
(
recordsToUpdate
);
}
// dao.saveOrUpdateBatch(dataList);
}
private
boolean
checkRecord
(
FinanceBaseZbjType
record
,
FinanceBaseZbjType
data
)
{
if
(
ObjectUtil
.
isNotEmpty
(
record
.
getFenxiaoName
()))
{
return
record
.
getFenxiaoName
().
equals
(
data
.
getFenxiaoName
())
&&
record
.
getZbjQdType
().
equals
(
data
.
getZbjQdType
());
}
else
{
return
ObjectUtil
.
isEmpty
(
data
.
getFenxiaoName
())
&&
record
.
getZbjQdType
().
equals
(
data
.
getZbjQdType
());
}
}
}
src/main/java/com/link/bi/service/impl/FinanceOrderDetailServiceImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.IdUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
com.alibaba.excel.EasyExcel
;
import
com.alibaba.excel.support.ExcelTypeEnum
;
import
com.alibaba.excel.write.metadata.style.WriteCellStyle
;
import
com.alibaba.excel.write.metadata.style.WriteFont
;
import
com.alibaba.excel.write.style.HorizontalCellStyleStrategy
;
import
com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy
;
import
com.github.pagehelper.PageInfo
;
import
com.link.bi.domain.dao.IFinanceOrderDetailDao
;
import
com.link.bi.domain.entity.FinanceOrderDetail
;
import
com.link.bi.domain.wq.FinanceCostWq
;
import
com.link.bi.pojo.request.FinanceCostVo
;
import
com.link.bi.pojo.response.FinanceBiListDto
;
import
com.link.bi.pojo.response.FinanceExportBiListDto
;
import
com.link.bi.pojo.response.FinanceExportOrderDetailListDto
;
import
com.link.bi.pojo.response.FinanceOrderDetailListDto
;
import
com.link.bi.service.FinanceOrderDetailService
;
import
com.sfa.common.core.utils.DateUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.poi.ss.usermodel.BorderStyle
;
import
org.apache.poi.ss.usermodel.HorizontalAlignment
;
import
org.apache.poi.ss.usermodel.IndexedColors
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.MediaTypeFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.MimeType
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.io.UnsupportedEncodingException
;
import
java.math.BigDecimal
;
import
java.net.URLEncoder
;
import
java.util.*
;
import
java.util.concurrent.*
;
import
java.util.stream.Collectors
;
/**
* 旺店通订单明细Service业务层处理
*
* @author lvbencai
* @date 2025年01月07日17:00:16
*/
@Slf4j
@Service
public
class
FinanceOrderDetailServiceImpl
implements
FinanceOrderDetailService
{
@Autowired
IFinanceOrderDetailDao
detailDao
;
// @Autowired
// private Executor defaultExecutor;
@Override
public
PageInfo
<
FinanceBiListDto
>
selectBiFinanceCostList
(
FinanceCostVo
financeCostVo
)
{
PageInfo
<
FinanceBiListDto
>
pageInfo
=
new
PageInfo
<>();
// 多线程,设置不同线程的参数
List
<
Date
[]>
dates
=
DateUtils
.
splitTimeInterval
(
financeCostVo
.
getStartDate
(),
financeCostVo
.
getEndDate
());
if
(
dates
.
size
()
==
0
)
{
return
pageInfo
;
}
if
(
dates
.
size
()
==
1
)
{
FinanceCostWq
qw
=
covertFinanceCostWq
(
financeCostVo
);
PageInfo
<
FinanceOrderDetail
>
orderDetailPageInfo
=
detailDao
.
selectBiFinanceCostList
(
qw
);
BeanUtils
.
copyProperties
(
orderDetailPageInfo
,
pageInfo
);
pageInfo
.
setList
(
orderDetailPageInfo
.
getList
().
stream
().
map
(
item
->
{
FinanceBiListDto
dto
=
new
FinanceBiListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
dto
.
setActualCostSum
(
item
.
getSumActualCostSum
());
dto
.
setStandardCostSum
(
item
.
getSumStandardCostSum
());
dto
.
setShareAmountSum
(
item
.
getShareAmountSum
().
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
dto
.
setActualCostGrossProfitSum
(
dto
.
getShareAmountSum
().
subtract
(
dto
.
getActualCostSum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
dto
.
setStandardCostGrossProfitSum
(
dto
.
getShareAmountSum
().
subtract
(
dto
.
getStandardCostSum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
dto
.
setUid
(
IdUtil
.
simpleUUID
());
return
dto
;
}).
collect
(
Collectors
.
toList
()));
return
pageInfo
;
}
if
(
dates
.
size
()
>
1
)
{
// 多线程查询
// 创建一个线程池
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
20
);
// 创建一个任务列表
List
<
Callable
<
PageInfo
<
FinanceOrderDetail
>>>
tasks
=
new
ArrayList
<>();
final
CountDownLatch
endLock
=
new
CountDownLatch
(
dates
.
size
());
// 假设我们有多个查询条件,每个条件对应一个任务
BlockingQueue
<
Future
<
PageInfo
<
FinanceOrderDetail
>>>
queue
=
new
LinkedBlockingQueue
<>();
PageInfo
<
FinanceOrderDetail
>
orderDetailPageInfo
=
new
PageInfo
<>();
long
total
=
0
;
int
pages
=
1
;
List
<
FinanceOrderDetail
>
aggregatedResult
=
new
ArrayList
<>();
try
{
for
(
int
i
=
0
;
i
<
dates
.
size
();
i
++)
{
FinanceCostWq
wq
=
covertFinanceCostThreadWq
(
financeCostVo
,
dates
,
i
);
Future
<
PageInfo
<
FinanceOrderDetail
>>
future
=
executorService
.
submit
(
new
Callable
<
PageInfo
<
FinanceOrderDetail
>>()
{
@Override
public
PageInfo
<
FinanceOrderDetail
>
call
()
throws
Exception
{
PageInfo
<
FinanceOrderDetail
>
detailPageInfo
=
detailDao
.
selectBiFinanceCostList
(
wq
);
endLock
.
countDown
();
log
.
info
(
"{} has finished the job!"
);
return
detailPageInfo
;
}
});
queue
.
add
(
future
);
}
endLock
.
await
();
log
.
info
(
"endLock.await()结束-"
+
queue
.
size
());
// 汇聚结果
for
(
Future
<
PageInfo
<
FinanceOrderDetail
>>
future
:
queue
)
{
// 获取结果
PageInfo
<
FinanceOrderDetail
>
financeOrderDetailPageInfo
=
future
.
get
();
orderDetailPageInfo
=
financeOrderDetailPageInfo
;
pages
=
Math
.
max
(
pages
,
financeOrderDetailPageInfo
.
getPages
());
total
=
Math
.
max
(
total
,
financeOrderDetailPageInfo
.
getTotal
());
aggregatedResult
.
addAll
(
financeOrderDetailPageInfo
.
getList
());
}
BeanUtils
.
copyProperties
(
orderDetailPageInfo
,
pageInfo
);
pageInfo
.
setPages
(
pages
);
pageInfo
.
setTotal
(
total
);
// 分组求和aggregatedResult
Set
<
String
>
preSet
=
new
HashSet
<>();
Map
<
String
,
FinanceBiListDto
>
existMap
=
new
HashMap
<>();
for
(
int
i
=
0
;
i
<
aggregatedResult
.
size
();
i
++)
{
FinanceOrderDetail
item
=
aggregatedResult
.
get
(
i
);
// 判断几个字段 组合
String
key
=
getKey
(
item
,
financeCostVo
);
if
(
preSet
.
contains
(
key
))
{
// 直接继续求和
FinanceBiListDto
dto
=
existMap
.
get
(
key
);
dto
.
setShareAmountSum
(
dto
.
getShareAmountSum
().
add
(
item
.
getShareAmountSum
()));
dto
.
setActualCostSum
(
dto
.
getActualCostSum
().
add
(
item
.
getSumActualCostSum
()));
dto
.
setStandardCostSum
(
dto
.
getStandardCostSum
().
add
(
item
.
getSumStandardCostSum
()));
}
else
{
FinanceBiListDto
dto
=
new
FinanceBiListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
dto
.
setActualCostSum
(
item
.
getSumActualCostSum
());
dto
.
setStandardCostSum
(
item
.
getSumStandardCostSum
());
dto
.
setUid
(
IdUtil
.
simpleUUID
());
existMap
.
put
(
key
,
dto
);
preSet
.
add
(
key
);
}
}
List
<
FinanceBiListDto
>
valueList
=
new
ArrayList
<>(
existMap
.
values
());
pageInfo
.
setList
(
valueList
);
// 计算实际成本毛利 标准成本毛利
pageInfo
.
setList
(
valueList
.
stream
().
map
(
item
->
{
FinanceBiListDto
dto
=
new
FinanceBiListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
dto
.
setShareAmountSum
(
item
.
getShareAmountSum
().
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
dto
.
setActualCostGrossProfitSum
(
dto
.
getShareAmountSum
().
subtract
(
dto
.
getActualCostSum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
dto
.
setStandardCostGrossProfitSum
(
dto
.
getShareAmountSum
().
subtract
(
dto
.
getStandardCostSum
()).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
));
dto
.
setUid
(
IdUtil
.
simpleUUID
());
return
dto
;
}).
collect
(
Collectors
.
toList
()));
log
.
info
(
"完成数据整合"
);
}
catch
(
InterruptedException
|
ExecutionException
e
)
{
e
.
printStackTrace
();
log
.
error
(
e
.
getMessage
(),
e
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
e
.
getMessage
(),
e
);
}
finally
{
// endLock.countDown();
// 关闭线程池
executorService
.
shutdown
();
}
}
return
pageInfo
;
}
private
String
getKey
(
FinanceOrderDetail
item
,
FinanceCostVo
financeCostVo
)
{
//根据入参条件决定key
String
key
=
""
;
if
(
ObjectUtil
.
equals
(
Boolean
.
TRUE
,
financeCostVo
.
getZbjQdTypeAll
())
||
ObjectUtil
.
isNotEmpty
(
financeCostVo
.
getZbjQdType
()))
{
key
=
key
+
"#"
+
item
.
getZbjQdType
();
}
if
(
ObjectUtil
.
equals
(
Boolean
.
TRUE
,
financeCostVo
.
getFlavorAll
())
||
ObjectUtil
.
isNotEmpty
(
financeCostVo
.
getFlavor
()))
{
key
=
key
+
"#"
+
item
.
getFlavorErp
();
}
if
(
ObjectUtil
.
equals
(
Boolean
.
TRUE
,
financeCostVo
.
getSpecNameAll
())
||
ObjectUtil
.
isNotEmpty
(
financeCostVo
.
getSpecName
()))
{
key
=
key
+
"#"
+
item
.
getSpecNameErp
();
}
if
(
ObjectUtil
.
equals
(
Boolean
.
TRUE
,
financeCostVo
.
getSeriesAll
())
||
ObjectUtil
.
isNotEmpty
(
financeCostVo
.
getSeries
()))
{
key
=
key
+
"#"
+
item
.
getSeries
();
}
if
(
ObjectUtil
.
isEmpty
(
key
))
{
key
=
item
.
getZbjQdType
();
}
return
key
;
}
private
FinanceCostWq
covertFinanceCostWq
(
FinanceCostVo
financeCostVo
)
{
FinanceCostWq
qw
=
new
FinanceCostWq
();
BeanUtils
.
copyProperties
(
financeCostVo
,
qw
);
// 初始化开始日期和结束日期
if
(
ObjectUtil
.
isAllNotEmpty
(
qw
.
getStartDate
(),
qw
.
getEndDate
()))
{
qw
.
setStartDate
(
DateUtils
.
dateStart
(
DateUtils
.
dateStart
(
qw
.
getStartDate
())));
qw
.
setEndDate
(
DateUtils
.
dateStart
(
DateUtils
.
dateStart
(
DateUtils
.
addDays
(
qw
.
getEndDate
(),
1
))));
}
else
{
//默认 t-1 天的数据查询
qw
.
setEndDate
(
DateUtils
.
dateStart
(
new
Date
()));
qw
.
setStartDate
(
DateUtils
.
dateStart
(
DateUtils
.
addDays
(
new
Date
(),
-
1
)));
}
return
qw
;
}
/**
* 转换成
*
* @param financeCostVo
* @param intervals
* @param i
* @return
*/
private
FinanceCostWq
covertFinanceCostThreadWq
(
FinanceCostVo
financeCostVo
,
List
<
Date
[]>
intervals
,
int
i
)
{
FinanceCostWq
qw
=
new
FinanceCostWq
();
BeanUtils
.
copyProperties
(
financeCostVo
,
qw
);
// 初始化开始日期和结束日期
if
(
ObjectUtil
.
isNotEmpty
(
intervals
))
{
qw
.
setStartDate
(
DateUtils
.
dateStart
(
DateUtils
.
dateStart
(
intervals
.
get
(
i
)[
0
])));
qw
.
setEndDate
(
DateUtils
.
dateStart
(
DateUtils
.
dateStart
(
DateUtils
.
addDays
(
intervals
.
get
(
i
)[
1
],
1
))));
}
else
{
//默认 t-1 天的数据查询
qw
.
setEndDate
(
DateUtils
.
dateStart
(
new
Date
()));
qw
.
setStartDate
(
DateUtils
.
dateStart
(
DateUtils
.
addDays
(
new
Date
(),
-
1
)));
}
return
qw
;
}
@Override
public
PageInfo
<
FinanceOrderDetailListDto
>
selectBiFinanceCostDetailPage
(
FinanceCostVo
financeCostVo
)
{
FinanceCostWq
qw
=
covertFinanceCostWq
(
financeCostVo
);
PageInfo
<
FinanceOrderDetail
>
financeOrderDetailPageInfo
=
detailDao
.
selectBiFinanceCostDetailList
(
qw
);
PageInfo
<
FinanceOrderDetailListDto
>
pageInfo
=
new
PageInfo
<>();
BeanUtils
.
copyProperties
(
financeOrderDetailPageInfo
,
pageInfo
);
pageInfo
.
setList
(
financeOrderDetailPageInfo
.
getList
().
stream
().
map
(
item
->
{
FinanceOrderDetailListDto
dto
=
new
FinanceOrderDetailListDto
();
BeanUtils
.
copyProperties
(
item
,
dto
);
// 转换数据
// 交易时间 毫秒转时间
dto
.
setTradeTime
(
DateUtil
.
format
(
new
Date
(
Long
.
parseLong
(
dto
.
getTradeTime
())),
"yyyy-MM-dd HH:mm:ss"
));
// 订单状态 转换 96 成本确认 110 已完成
// if (ObjectUtil.isNotEmpty(dto.getTradeStatus())) {
// if (dto.getTradeStatus().equals("96")) {
// dto.setTradeStatus("成本确认");
// } else if (dto.getTradeStatus().equals("110")) {
// dto.setTradeStatus("已完成");
// }
// } else {
// dto.setTradeStatus("-");
// }
dto
.
setFenxiaoName
(
ObjectUtil
.
isEmpty
(
item
.
getFenxiaoName
())?
item
.
getZbjQdType
():
item
.
getFenxiaoName
());
// 货品类型 确认是否是从产品基础信息表中获取 包材-泡沫箱 包材-气泡袋 包材-纸箱 产品 成品-主营 成品-组合包 物料-常规 物料-联名等
return
dto
;
}).
collect
(
Collectors
.
toList
()));
return
pageInfo
;
}
/**
* 导出数据
*/
@Override
public
void
exportBiFinanceCostList
(
FinanceCostVo
financeCostVo
,
HttpServletResponse
response
)
{
// 区分类型,不同的数据导出 策略模式
if
(
financeCostVo
.
getType
().
equals
(
"1"
))
{
financeCostVo
.
setTypeName
(
"达人分类"
);
this
.
exportBiFinanceCostData
(
financeCostVo
,
response
);
}
else
if
(
financeCostVo
.
getType
().
equals
(
"2"
))
{
financeCostVo
.
setTypeName
(
"分类"
);
this
.
exportBiFinanceCostData
(
financeCostVo
,
response
);
}
else
if
(
financeCostVo
.
getType
().
equals
(
"3"
))
{
financeCostVo
.
setTypeName
(
"订单明细"
);
this
.
exportBiFinanceCostOrderDetailData
(
financeCostVo
,
response
);
}
}
private
void
exportBiFinanceCostOrderDetailData
(
FinanceCostVo
financeCostVo
,
HttpServletResponse
response
)
{
// 导出查询的数据
financeCostVo
.
setPageNum
(
1
);
financeCostVo
.
setPageSize
(
1000000
);
PageInfo
<
FinanceOrderDetailListDto
>
financeBiListDtoPageInfo
=
this
.
selectBiFinanceCostDetailPage
(
financeCostVo
);
// easyExcel导出数据
String
fileNameOri
=
String
.
format
(
"王小卤成本核算%s-%s%s信息-%s.xlsx"
,
DateUtil
.
format
(
financeCostVo
.
getStartDate
(),
"yyyyMMdd"
),
DateUtil
.
format
(
financeCostVo
.
getEndDate
(),
"yyyyMMdd"
),
financeCostVo
.
getTypeName
(),
DateUtil
.
format
(
new
Date
(),
"MMdd"
));
// 文件名中文名需要转义
String
fileName
=
null
;
try
{
fileName
=
URLEncoder
.
encode
(
fileNameOri
,
"UTF-8"
);
String
contentType
=
MediaTypeFactory
.
getMediaType
(
fileName
).
map
(
MimeType:
:
toString
).
orElse
(
"application/vnd.ms-excel"
);
response
.
setContentType
(
contentType
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
// 这里需要设置不关闭流
response
.
setHeader
(
"Connection"
,
"close"
);
// 表头策略
WriteCellStyle
headWriteCellStyle
=
new
WriteCellStyle
();
//设置背景颜色
headWriteCellStyle
.
setFillForegroundColor
(
IndexedColors
.
WHITE
.
getIndex
());
headWriteCellStyle
.
setHorizontalAlignment
(
HorizontalAlignment
.
CENTER
);
WriteFont
headWriteFont
=
new
WriteFont
();
headWriteFont
.
setFontHeightInPoints
((
short
)
11
);
headWriteCellStyle
.
setWriteFont
(
headWriteFont
);
// 设置表头边框样式
headWriteCellStyle
.
setBorderLeft
(
BorderStyle
.
THIN
);
headWriteCellStyle
.
setBorderTop
(
BorderStyle
.
THIN
);
headWriteCellStyle
.
setBorderRight
(
BorderStyle
.
THIN
);
headWriteCellStyle
.
setBorderBottom
(
BorderStyle
.
THIN
);
// 设置表头边框颜色
headWriteCellStyle
.
setLeftBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
headWriteCellStyle
.
setTopBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
headWriteCellStyle
.
setRightBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
headWriteCellStyle
.
setBottomBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
//内容策略
WriteCellStyle
contentWriteCellStyle
=
new
WriteCellStyle
();
WriteFont
contentWriteFont
=
new
WriteFont
();
// 设置内容边框样式
contentWriteCellStyle
.
setBorderLeft
(
BorderStyle
.
THIN
);
contentWriteCellStyle
.
setBorderTop
(
BorderStyle
.
THIN
);
contentWriteCellStyle
.
setBorderRight
(
BorderStyle
.
THIN
);
contentWriteCellStyle
.
setBorderBottom
(
BorderStyle
.
THIN
);
// 设置内容边框颜色
contentWriteCellStyle
.
setLeftBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
contentWriteCellStyle
.
setTopBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
contentWriteCellStyle
.
setRightBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
contentWriteCellStyle
.
setBottomBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
// 字体大小
contentWriteFont
.
setFontHeightInPoints
((
short
)
10
);
contentWriteCellStyle
.
setWriteFont
(
contentWriteFont
);
//设置 水平居中
contentWriteCellStyle
.
setHorizontalAlignment
(
HorizontalAlignment
.
CENTER
);
HorizontalCellStyleStrategy
horizontalCellStyleStrategy
=
new
HorizontalCellStyleStrategy
(
headWriteCellStyle
,
contentWriteCellStyle
);
Collection
<?>
dataList
=
financeBiListDtoPageInfo
.
getList
();
EasyExcel
.
write
(
response
.
getOutputStream
(),
FinanceExportOrderDetailListDto
.
class
).
autoCloseStream
(
Boolean
.
TRUE
).
excelType
(
ExcelTypeEnum
.
XLSX
).
registerWriteHandler
(
horizontalCellStyleStrategy
).
registerWriteHandler
(
new
LongestMatchColumnWidthStyleStrategy
())
//自动列宽策略
.
sheet
(
financeCostVo
.
getTypeName
())
//获取数据填充
.
doWrite
(
dataList
);
}
catch
(
UnsupportedEncodingException
e
)
{
throw
new
RuntimeException
(
e
);
}
catch
(
IOException
e
)
{
throw
new
RuntimeException
(
e
);
}
}
/**
* 下载达人分类下的数据
*
* @param financeCostVo
* @param response
*/
private
void
exportBiFinanceCostData
(
FinanceCostVo
financeCostVo
,
HttpServletResponse
response
)
{
// 导出查询的数据
financeCostVo
.
setPageNum
(
1
);
financeCostVo
.
setPageSize
(
1000000
);
PageInfo
<
FinanceBiListDto
>
financeBiListDtoPageInfo
=
this
.
selectBiFinanceCostList
(
financeCostVo
);
// easyExcel导出数据
String
fileNameOri
=
String
.
format
(
"王小卤成本核算%s-%s%s-%s.xlsx"
,
DateUtil
.
format
(
financeCostVo
.
getStartDate
(),
"yyyyMMdd"
),
DateUtil
.
format
(
financeCostVo
.
getEndDate
(),
"yyyyMMdd"
),
financeCostVo
.
getTypeName
(),
DateUtil
.
format
(
new
Date
(),
"MMdd"
));
// 文件名中文名需要转义
String
fileName
=
null
;
try
{
fileName
=
URLEncoder
.
encode
(
fileNameOri
,
"UTF-8"
);
String
contentType
=
MediaTypeFactory
.
getMediaType
(
fileName
).
map
(
MimeType:
:
toString
).
orElse
(
"application/vnd.ms-excel"
);
response
.
setContentType
(
contentType
);
response
.
setCharacterEncoding
(
"utf-8"
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
fileName
);
// 这里需要设置不关闭流
response
.
setHeader
(
"Connection"
,
"close"
);
// 表头策略
WriteCellStyle
headWriteCellStyle
=
new
WriteCellStyle
();
//设置背景颜色
headWriteCellStyle
.
setFillForegroundColor
(
IndexedColors
.
WHITE
.
getIndex
());
headWriteCellStyle
.
setHorizontalAlignment
(
HorizontalAlignment
.
CENTER
);
WriteFont
headWriteFont
=
new
WriteFont
();
headWriteFont
.
setFontHeightInPoints
((
short
)
11
);
headWriteCellStyle
.
setWriteFont
(
headWriteFont
);
// 设置表头边框样式
headWriteCellStyle
.
setBorderLeft
(
BorderStyle
.
THIN
);
headWriteCellStyle
.
setBorderTop
(
BorderStyle
.
THIN
);
headWriteCellStyle
.
setBorderRight
(
BorderStyle
.
THIN
);
headWriteCellStyle
.
setBorderBottom
(
BorderStyle
.
THIN
);
// 设置表头边框颜色
headWriteCellStyle
.
setLeftBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
headWriteCellStyle
.
setTopBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
headWriteCellStyle
.
setRightBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
headWriteCellStyle
.
setBottomBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
//内容策略
WriteCellStyle
contentWriteCellStyle
=
new
WriteCellStyle
();
WriteFont
contentWriteFont
=
new
WriteFont
();
// 设置内容边框样式
contentWriteCellStyle
.
setBorderLeft
(
BorderStyle
.
THIN
);
contentWriteCellStyle
.
setBorderTop
(
BorderStyle
.
THIN
);
contentWriteCellStyle
.
setBorderRight
(
BorderStyle
.
THIN
);
contentWriteCellStyle
.
setBorderBottom
(
BorderStyle
.
THIN
);
// 设置内容边框颜色
contentWriteCellStyle
.
setLeftBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
contentWriteCellStyle
.
setTopBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
contentWriteCellStyle
.
setRightBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
contentWriteCellStyle
.
setBottomBorderColor
(
IndexedColors
.
BLACK
.
getIndex
());
// 字体大小
contentWriteFont
.
setFontHeightInPoints
((
short
)
10
);
contentWriteCellStyle
.
setWriteFont
(
contentWriteFont
);
//设置 水平居中
contentWriteCellStyle
.
setHorizontalAlignment
(
HorizontalAlignment
.
CENTER
);
HorizontalCellStyleStrategy
horizontalCellStyleStrategy
=
new
HorizontalCellStyleStrategy
(
headWriteCellStyle
,
contentWriteCellStyle
);
Collection
<?>
dataList
=
financeBiListDtoPageInfo
.
getList
();
EasyExcel
.
write
(
response
.
getOutputStream
(),
FinanceExportBiListDto
.
class
).
autoCloseStream
(
Boolean
.
TRUE
).
excelType
(
ExcelTypeEnum
.
XLSX
).
registerWriteHandler
(
horizontalCellStyleStrategy
).
registerWriteHandler
(
new
LongestMatchColumnWidthStyleStrategy
())
//自动列宽策略
.
sheet
(
financeCostVo
.
getTypeName
())
//获取数据填充
.
doWrite
(
dataList
);
}
catch
(
UnsupportedEncodingException
e
)
{
log
.
error
(
"编码异常"
+
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
e
);
}
catch
(
IOException
e
)
{
log
.
error
(
"IO异常"
+
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
e
);
}
}
}
src/main/java/com/link/bi/service/impl/FinanceOrderServiceImpl.java
0 → 100644
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.link.bi.service.FinanceOrderService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
/**
* 旺店通订单Service业务层处理
*
* @author lvbencai
* @date 2025年01月07日17:00:16
*/
@DS
(
"bi"
)
@Slf4j
@Service
public
class
FinanceOrderServiceImpl
implements
FinanceOrderService
{
}
src/main/java/com/link/bi/service/impl/ProductServiceImpl.java
浏览文件 @
ed11196e
package
com
.
link
.
bi
.
service
.
impl
;
package
com
.
link
.
bi
.
service
.
impl
;
import
com.link.bi.domain.dao.IProductDao
;
import
com.link.bi.domain.dao.IProductDao
;
import
com.link.bi.domain.entity.PrdInfo
;
import
com.link.bi.domain.wq.ProductWq
;
import
com.link.bi.domain.wq.ProductWq
;
import
com.link.bi.pojo.request.ProductVo
;
import
com.link.bi.pojo.request.ProductVo
;
import
com.link.bi.pojo.response.PrdInfoDto
;
import
com.link.bi.pojo.response.PrdInfoDto
;
...
@@ -10,7 +11,9 @@ import org.springframework.beans.BeanUtils;
...
@@ -10,7 +11,9 @@ import org.springframework.beans.BeanUtils;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @author : liqiulin
* @author : liqiulin
...
@@ -41,4 +44,16 @@ public class ProductServiceImpl implements IProductService {
...
@@ -41,4 +44,16 @@ public class ProductServiceImpl implements IProductService {
List
<
PrdInfoDto
>
prdInfos
=
productDao
.
selectListByCodes
(
prdCodes
);
List
<
PrdInfoDto
>
prdInfos
=
productDao
.
selectListByCodes
(
prdCodes
);
return
prdInfos
;
return
prdInfos
;
}
}
@Override
public
Map
<
String
,
String
>
selectProdSeries
()
{
List
<
PrdInfo
>
prdInfos
=
productDao
.
selectProdSeries
();
// 转换成map
Map
<
String
,
String
>
map
=
new
HashMap
<>();
prdInfos
.
stream
().
forEach
(
prdInfo
->
{
map
.
put
(
prdInfo
.
getPrdCode
(),
prdInfo
.
getPrdName
());
});
return
map
;
}
}
}
src/main/resources/mapper/bi/FinanceBaseZbjTypeMapper.xml
0 → 100644
浏览文件 @
ed11196e
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.link.bi.domain.mapper.FinanceBaseZbjTypeMapper"
>
<insert
id=
"saveOrUpdateBatch"
parameterType=
"java.util.List"
>
insert into finance_base_zbj_type (
<include
refid=
"Base_Column_List"
></include>
)
values
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.fbztId},#{item.fenxiaoName},#{item.zbjQdType},#{item.batchNo},#{item.remark},#{item.delFlag},#{item.createBy},#{item.createUserId},#{item.createTime},#{item.updateBy},#{item.updateUserId},#{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
fbzt_id = VALUES(fbzt_id),
fenxiao_name = VALUES(fenxiao_name),
zbj_qd_type = VALUES(zbj_qd_type),
batch_no = VALUES(batch_no),
remark = VALUES(remark),
del_flag = VALUES(del_flag),
create_by = VALUES(create_by),
create_user_id = VALUES(create_user_id),
create_time = VALUES(create_time),
update_by = VALUES(update_by),
update_user_id = VALUES(update_user_id),
update_time = VALUES(update_time);
</insert>
<!-- 定义 Base_Column_List -->
<sql
id=
"Base_Column_List"
>
fbzt_id,
fenxiao_name,
zbj_qd_type,
batch_no,
remark,
del_flag,
create_by,
create_user_id,
create_time,
update_by,
update_user_id,
update_time
</sql>
<!-- 定义结果映射 -->
<resultMap
id=
"FinanceBaseZbjTypeResultMap"
type=
"com.link.bi.domain.entity.FinanceBaseZbjType"
>
<id
property=
"fbztId"
column=
"fbzt_id"
/>
<result
property=
"fenxiaoName"
column=
"fenxiao_name"
/>
<result
property=
"zbjQdType"
column=
"zbj_qd_type"
/>
<result
property=
"batchNo"
column=
"batch_no"
/>
<result
property=
"remark"
column=
"remark"
/>
<result
property=
"delFlag"
column=
"del_flag"
/>
<result
property=
"createBy"
column=
"create_by"
/>
<result
property=
"createUserId"
column=
"create_user_id"
/>
<result
property=
"createTime"
column=
"create_time"
/>
<result
property=
"updateBy"
column=
"update_by"
/>
<result
property=
"updateUserId"
column=
"update_user_id"
/>
<result
property=
"updateTime"
column=
"update_time"
/>
</resultMap>
</mapper>
src/main/resources/mapper/bi/FinanceOrderDetailMapper.xml
0 → 100644
浏览文件 @
ed11196e
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.link.bi.domain.mapper.FinanceOrderDetailMapper"
>
<!-- 根据 聚合类型和值 查询聚合记录 -->
<select
id=
"selectBiFinanceCostList"
resultMap=
"BaseResultMap"
>
select
<!-- <if test=" (wq.zbjQdType == null or wq.zbjQdType.isEmpty() )-->
<!-- and (wq.goodsName== null or wq.goodsName.isEmpty() )-->
<!-- and (wq.specName== null or wq.specName.isEmpty() )-->
<!-- and (wq.flavor== null or wq.flavor.isEmpty() )-->
<!-- and (wq.series== null or wq.series.isEmpty() ) ">-->
<!-- zbj_qd_type,-->
<!-- </if>-->
zbj_qd_type,
<if
test=
"wq.zbjQdType!= null and !wq.zbjQdType.isEmpty() "
>
<if
test=
"wq.subType!= null and wq.subType == 1 "
>
fenxiao_id, fenxiao_name,
</if>
</if>
<if
test=
"(wq.goodsName!= null and !wq.goodsName.isEmpty() ) or wq.goodsNameAll == true "
>
goods_no,goods_name,
</if>
<if
test=
"(wq.specName!= null and !wq.specName.isEmpty() ) or wq.specNameAll == true "
>
spec_name_erp,
</if>
<if
test=
"(wq.flavor!= null and !wq.flavor.isEmpty() ) or wq.flavorAll == true "
>
flavor_erp,
</if>
<if
test=
"(wq.series!= null and !wq.series.isEmpty() ) or wq.seriesAll == true "
>
series,
<if
test=
"wq.subType!= null and wq.subType == 1 "
>
goods_no,goods_name,
</if>
</if>
sum(share_amount) as share_amount_sum,
sum(sum_actual_cost) as sum_actual_cost_sum,
sum(sum_standard_cost) as sum_standard_cost_sum
from finance_order_detail fod
<where>
shop_no IN ( '016', '070', '091')
<if
test=
"(wq.zbjQdTypeAll == null or wq.zbjQdTypeAll == false) and (wq.zbjQdType!= null and !wq.zbjQdType.isEmpty() )"
>
and fod.zbj_qd_type in
<foreach
collection=
"wq.zbjQdType"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"(wq.goodsNameAll == null or wq.goodsNameAll == false) and (wq.goodsName!= null and !wq.goodsName.isEmpty())"
>
and fod.goods_name in
<foreach
collection=
"wq.goodsName"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"(wq.specNameAll ==null or wq.specNameAll == false )and (wq.specName!= null and !wq.specName.isEmpty() )"
>
and fod.spec_name_erp in
<foreach
collection=
"wq.specName"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"(wq.flavorAll == null or wq.flavorAll == false) and (wq.flavor!= null and !wq.flavor.isEmpty())"
>
and fod.flavor_erp in
<foreach
collection=
"wq.flavor"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"( wq.seriesAll == null or wq.seriesAll == false ) and (wq.series!= null and !wq.series.isEmpty() )"
>
and fod.series in
<foreach
collection=
"wq.series"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"wq.startDate!= null "
>
and fod.consign_time between #{wq.startDate} and #{wq.endDate}
</if>
</where>
group by
<trim
suffixOverrides=
","
suffix=
""
>
zbj_qd_type,
<if
test=
"wq.zbjQdType!= null and !wq.zbjQdType.isEmpty() "
>
<if
test=
"wq.subType!= null and wq.subType == 0 "
>
fenxiao_id, fenxiao_name,
</if>
</if>
<if
test=
"(wq.goodsName!= null and !wq.goodsName.isEmpty()) or wq.goodsNameAll == true"
>
goods_no ,goods_name,
</if>
<if
test=
"(wq.specName!= null and !wq.specName.isEmpty()) or wq.specNameAll == true"
>
spec_name_erp,
</if>
<if
test=
"(wq.flavor!= null and !wq.flavor.isEmpty()) or wq.flavorAll == true "
>
flavor_erp,
</if>
<if
test=
"(wq.series!= null and !wq.series.isEmpty() ) or wq.seriesAll == true "
>
series,
</if>
</trim>
order by
<trim
suffixOverrides=
","
suffix=
""
>
<if
test=
" (wq.zbjQdType == null or wq.zbjQdType .isEmpty() )
and (wq.goodsName== null or wq.goodsName.isEmpty() )
and (wq.specName== null or wq.specName.isEmpty() )
and (wq.flavor== null or wq.flavor.isEmpty() )
and (wq.series== null or wq.series.isEmpty() ) "
>
zbj_qd_type desc,
</if>
<if
test=
"wq.zbjQdType!= null and !wq.zbjQdType.isEmpty() "
>
zbj_qd_type desc,
<if
test=
"wq.subType!= null and wq.subType == 0 "
>
fenxiao_id desc ,
</if>
</if>
<if
test=
"(wq.flavor!= null and !wq.flavor.isEmpty()) or wq.flavorAll == true "
>
flavor_erp desc,
</if>
</trim>
</select>
<!-- 根据 类型和聚合的值 查询详情记录 -->
<select
id=
"selectBiFinanceCostDetailList"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Detail_Base_Column_List"
/>
from finance_order_detail fod
<where>
shop_no IN ( '016', '070', '091')
<if
test=
"wq.startDate!= null "
>
and fod.consign_time between #{wq.startDate} and #{wq.endDate}
</if>
<if
test=
"wq.fenxiaoId!= null and wq.fenxiaoId!='' "
>
and fod.fenxiao_id = #{wq.fenxiaoId}
</if>
<if
test=
"wq.zbjQdType!= null and !wq.zbjQdType.isEmpty() "
>
and fod.zbj_qd_type in
<foreach
collection=
"wq.zbjQdType"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"wq.goodsName!= null and !wq.goodsName.isEmpty() "
>
and fod.goods_name in
<foreach
collection=
"wq.goodsName"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"wq.specName!= null and !wq.specName.isEmpty() "
>
and fod.spec_name_erp in
<foreach
collection=
"wq.specName"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"wq.flavor!= null and !wq.flavor.isEmpty() "
>
and fod.flavor_erp in
<foreach
collection=
"wq.flavor"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
<if
test=
"wq.series!= null and !wq.series.isEmpty() "
>
and fod.series in
<foreach
collection=
"wq.series"
item=
"item"
index=
"index"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
</where>
</select>
<!-- 根据 rec_id 查询单条记录 -->
<select
id=
"selectByRecId"
resultMap=
"BaseResultMap"
>
select trade_no,
trade_id,
rec_id,
platform_id,
src_oid,
src_tid,
pay_status,
refund_status,
platform_status,
delivery_term,
num,
price,
refund_num,
order_price,
share_price,
adjust,
discount,
share_amount,
tax_rate,
goods_name,
goods_no,
spec_name,
spec_no,
spec_code,
suite_no,
suite_name,
suite_num,
suite_amount,
suite_discount,
api_goods_name,
api_spec_name,
api_goods_id,
api_spec_id,
goods_id,
spec_id,
commission,
goods_type,
from_mask,
remark,
modified,
created,
prop1,
prop2,
weight,
img_url,
actual_num,
barcode,
paid,
suite_id,
bind_oid,
print_suite_mode,
flag,
stock_state,
is_consigned,
is_received,
cid,
modified_date,
created_date,
share_post_price,
invoice_content,
pay_time,
short_name,
fenxiao_nick,
fenxiao_id,
fenxiao_name,
batch_no,
del_flag,
create_by,
create_user_id,
create_time,
update_time,
update_by,
update_user_id,
start_time,
end_time,
shop_no,
shop_name,
shop_remark,
trade_status,
trade_time,
consign_time,
receiver_area,
zbj_name,
zbj_id,
zbj_zb_id,
zbj_sale_type,
zbj_qd_type,
receivable,
spec_name_erp,
flavor_erp,
sync_type,
actual_cost,
standard_cost
from finance_order_detail
where rec_id = #{recId}
</select>
<!-- 根据 rec_id 删除记录 -->
<delete
id=
"deleteByRecId"
parameterType=
"java.lang.Long"
>
delete
from finance_order_detail
where rec_id = #{recId}
</delete>
<sql
id=
"Detail_Base_Column_List"
>
trade_no
,shop_name,src_tid,src_oid,trade_status,trade_time,pay_time,consign_time,receiver_area,
remark,receivable,goods_no,goods_name,spec_name,goods_type,num,discount,share_amount,suite_no,
suite_name,suite_num,fenxiao_name,fenxiao_id,api_goods_name,zbj_qd_type
</sql>
<!-- 通用查询结果映射 -->
<resultMap
id=
"BaseResultMap"
type=
"com.link.bi.domain.entity.FinanceOrderDetail"
>
<id
column=
"rec_id"
property=
"recId"
jdbcType=
"BIGINT"
/>
<result
column=
"trade_no"
property=
"tradeNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"trade_id"
property=
"tradeId"
jdbcType=
"BIGINT"
/>
<result
column=
"platform_id"
property=
"platformId"
jdbcType=
"INTEGER"
/>
<result
column=
"src_oid"
property=
"srcOid"
jdbcType=
"VARCHAR"
/>
<result
column=
"src_tid"
property=
"srcTid"
jdbcType=
"VARCHAR"
/>
<result
column=
"pay_status"
property=
"payStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"refund_status"
property=
"refundStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"platform_status"
property=
"platformStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"delivery_term"
property=
"deliveryTerm"
jdbcType=
"INTEGER"
/>
<result
column=
"num"
property=
"num"
jdbcType=
"DECIMAL"
/>
<result
column=
"price"
property=
"price"
jdbcType=
"DECIMAL"
/>
<result
column=
"refund_num"
property=
"refundNum"
jdbcType=
"DECIMAL"
/>
<result
column=
"order_price"
property=
"orderPrice"
jdbcType=
"DECIMAL"
/>
<result
column=
"share_price"
property=
"sharePrice"
jdbcType=
"DECIMAL"
/>
<result
column=
"adjust"
property=
"adjust"
jdbcType=
"DECIMAL"
/>
<result
column=
"discount"
property=
"discount"
jdbcType=
"DECIMAL"
/>
<result
column=
"share_amount"
property=
"shareAmount"
jdbcType=
"DECIMAL"
/>
<result
column=
"tax_rate"
property=
"taxRate"
jdbcType=
"DECIMAL"
/>
<result
column=
"goods_name"
property=
"goodsName"
jdbcType=
"VARCHAR"
/>
<result
column=
"goods_no"
property=
"goodsNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"spec_name"
property=
"specName"
jdbcType=
"VARCHAR"
/>
<result
column=
"spec_no"
property=
"specNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"spec_code"
property=
"specCode"
jdbcType=
"VARCHAR"
/>
<result
column=
"suite_no"
property=
"suiteNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"suite_name"
property=
"suiteName"
jdbcType=
"VARCHAR"
/>
<result
column=
"suite_num"
property=
"suiteNum"
jdbcType=
"DECIMAL"
/>
<result
column=
"suite_amount"
property=
"suiteAmount"
jdbcType=
"DECIMAL"
/>
<result
column=
"suite_discount"
property=
"suiteDiscount"
jdbcType=
"DECIMAL"
/>
<result
column=
"api_goods_name"
property=
"apiGoodsName"
jdbcType=
"VARCHAR"
/>
<result
column=
"api_spec_name"
property=
"apiSpecName"
jdbcType=
"VARCHAR"
/>
<result
column=
"api_goods_id"
property=
"apiGoodsId"
jdbcType=
"VARCHAR"
/>
<result
column=
"api_spec_id"
property=
"apiSpecId"
jdbcType=
"VARCHAR"
/>
<result
column=
"goods_id"
property=
"goodsId"
jdbcType=
"INTEGER"
/>
<result
column=
"spec_id"
property=
"specId"
jdbcType=
"INTEGER"
/>
<result
column=
"commission"
property=
"commission"
jdbcType=
"DECIMAL"
/>
<result
column=
"goods_type"
property=
"goodsType"
jdbcType=
"INTEGER"
/>
<result
column=
"from_mask"
property=
"fromMask"
jdbcType=
"INTEGER"
/>
<result
column=
"remark"
property=
"remark"
jdbcType=
"VARCHAR"
/>
<result
column=
"modified"
property=
"modified"
jdbcType=
"VARCHAR"
/>
<result
column=
"created"
property=
"created"
jdbcType=
"VARCHAR"
/>
<result
column=
"prop1"
property=
"prop1"
jdbcType=
"VARCHAR"
/>
<result
column=
"prop2"
property=
"prop2"
jdbcType=
"VARCHAR"
/>
<result
column=
"weight"
property=
"weight"
jdbcType=
"DECIMAL"
/>
<result
column=
"actual_num"
property=
"actualNum"
jdbcType=
"DECIMAL"
/>
<result
column=
"barcode"
property=
"barcode"
jdbcType=
"VARCHAR"
/>
<result
column=
"paid"
property=
"paid"
jdbcType=
"DECIMAL"
/>
<result
column=
"suite_id"
property=
"suiteId"
jdbcType=
"INTEGER"
/>
<result
column=
"bind_oid"
property=
"bindOid"
jdbcType=
"VARCHAR"
/>
<result
column=
"print_suite_mode"
property=
"printSuiteMode"
jdbcType=
"INTEGER"
/>
<result
column=
"flag"
property=
"flag"
jdbcType=
"INTEGER"
/>
<result
column=
"stock_state"
property=
"stockState"
jdbcType=
"INTEGER"
/>
<result
column=
"is_consigned"
property=
"isConsigned"
jdbcType=
"TINYINT"
/>
<result
column=
"is_received"
property=
"isReceived"
jdbcType=
"INTEGER"
/>
<result
column=
"cid"
property=
"cid"
jdbcType=
"INTEGER"
/>
<result
column=
"modified_date"
property=
"modifiedDate"
jdbcType=
"VARCHAR"
/>
<result
column=
"created_date"
property=
"createdDate"
jdbcType=
"VARCHAR"
/>
<result
column=
"share_post_price"
property=
"sharePostPrice"
jdbcType=
"DECIMAL"
/>
<result
column=
"invoice_content"
property=
"invoiceContent"
jdbcType=
"VARCHAR"
/>
<result
column=
"pay_time"
property=
"payTime"
jdbcType=
"VARCHAR"
/>
<result
column=
"short_name"
property=
"shortName"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_nick"
property=
"fenxiaoNick"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_id"
property=
"fenxiaoId"
jdbcType=
"VARCHAR"
/>
<result
column=
"fenxiao_name"
property=
"fenxiaoName"
jdbcType=
"VARCHAR"
/>
<result
column=
"batch_no"
property=
"batchNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"del_flag"
property=
"delFlag"
jdbcType=
"CHAR"
/>
<result
column=
"create_by"
property=
"createBy"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_user_id"
property=
"createUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_by"
property=
"updateBy"
jdbcType=
"VARCHAR"
/>
<result
column=
"update_user_id"
property=
"updateUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"start_time"
property=
"startTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"end_time"
property=
"endTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"shop_no"
property=
"shopNo"
jdbcType=
"VARCHAR"
/>
<result
column=
"shop_name"
property=
"shopName"
jdbcType=
"VARCHAR"
/>
<result
column=
"shop_remark"
property=
"shopRemark"
jdbcType=
"VARCHAR"
/>
<result
column=
"trade_status"
property=
"tradeStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"trade_time"
property=
"tradeTime"
jdbcType=
"VARCHAR"
/>
<result
column=
"consign_time"
property=
"consignTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"receiver_area"
property=
"receiverArea"
jdbcType=
"VARCHAR"
/>
<result
column=
"zbj_name"
property=
"zbjName"
jdbcType=
"VARCHAR"
/>
<result
column=
"zbj_id"
property=
"zbjId"
jdbcType=
"VARCHAR"
/>
<result
column=
"zbj_zb_id"
property=
"zbjZbId"
jdbcType=
"VARCHAR"
/>
<result
column=
"zbj_sale_type"
property=
"zbjSaleType"
jdbcType=
"VARCHAR"
/>
<result
column=
"zbj_qd_type"
property=
"zbjQdType"
jdbcType=
"VARCHAR"
/>
<result
column=
"receivable"
property=
"receivable"
jdbcType=
"DECIMAL"
/>
<result
column=
"spec_name_erp"
property=
"specNameErp"
jdbcType=
"VARCHAR"
/>
<result
column=
"flavor_erp"
property=
"flavorErp"
jdbcType=
"VARCHAR"
/>
<result
column=
"sync_type"
property=
"syncType"
jdbcType=
"TINYINT"
/>
<result
column=
"actual_cost"
property=
"actualCost"
jdbcType=
"DECIMAL"
/>
<result
column=
"standard_cost"
property=
"standardCost"
jdbcType=
"DECIMAL"
/>
<result
column=
"sum_actual_cost"
property=
"sumActualCost"
jdbcType=
"DECIMAL"
/>
<result
column=
"sum_standard_cost"
property=
"sumStandardCost"
jdbcType=
"DECIMAL"
/>
</resultMap>
</mapper>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论