Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
W
wangxiaolu-sfa-module-job
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
sfa
wangxiaolu-sfa-module-job
Commits
1b6f3a72
提交
1b6f3a72
authored
3月 25, 2026
作者:
lvbencai
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'qa' 到 'master'
增加出库数据取数据 查看合并请求
!138
上级
0e1c47ae
12543d0e
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
58 个修改的文件
包含
2579 行增加
和
42 行删除
+2579
-42
WdtQimenStockoutOrderController.java
...job/controller/order/WdtQimenStockoutOrderController.java
+58
-0
QinceDealerController.java
...a/com/sfa/job/controller/qince/QinceDealerController.java
+63
-0
WdtQimenOrderDao.java
...n/java/com/sfa/job/domain/order/dao/WdtQimenOrderDao.java
+0
-1
WdtQimenStockOutPickPositionDetailDao.java
...main/order/dao/WdtQimenStockOutPickPositionDetailDao.java
+39
-0
WdtQimenStockoutGovSubsidyDao.java
...a/job/domain/order/dao/WdtQimenStockoutGovSubsidyDao.java
+40
-0
WdtQimenStockoutLogisticsDetailDao.java
.../domain/order/dao/WdtQimenStockoutLogisticsDetailDao.java
+40
-0
WdtQimenStockoutOrderDao.java
...om/sfa/job/domain/order/dao/WdtQimenStockoutOrderDao.java
+41
-0
WdtQimenStockoutOrderDaoImpl.java
...fa/job/domain/order/dao/WdtQimenStockoutOrderDaoImpl.java
+61
-0
WdtQimenStockoutOrderDetailDao.java
.../job/domain/order/dao/WdtQimenStockoutOrderDetailDao.java
+34
-0
WdtQimenStockoutOrderDetailDaoImpl.java
.../domain/order/dao/WdtQimenStockoutOrderDetailDaoImpl.java
+55
-0
WdtQimenStockoutPositionDetailDao.java
...b/domain/order/dao/WdtQimenStockoutPositionDetailDao.java
+39
-0
CollectOrderLogDaoImpl.java
...sfa/job/domain/order/dao/impl/CollectOrderLogDaoImpl.java
+1
-1
WdtQimenStockOutPickPositionDetailDaoImpl.java
...r/dao/impl/WdtQimenStockOutPickPositionDetailDaoImpl.java
+67
-0
WdtQimenStockoutGovSubsidyDaoImpl.java
...ain/order/dao/impl/WdtQimenStockoutGovSubsidyDaoImpl.java
+68
-0
WdtQimenStockoutLogisticsDetailDaoImpl.java
...rder/dao/impl/WdtQimenStockoutLogisticsDetailDaoImpl.java
+68
-0
WdtQimenStockoutPositionDetailDaoImpl.java
...order/dao/impl/WdtQimenStockoutPositionDetailDaoImpl.java
+66
-0
WdtQimenOrderPayTime.java
...com/sfa/job/domain/order/entity/WdtQimenOrderPayTime.java
+8
-0
WdtQimenStockOutPickPositionDetail.java
...main/order/entity/WdtQimenStockOutPickPositionDetail.java
+38
-0
WdtQimenStockoutGovSubsidy.java
...a/job/domain/order/entity/WdtQimenStockoutGovSubsidy.java
+19
-0
WdtQimenStockoutLogisticsDetail.java
.../domain/order/entity/WdtQimenStockoutLogisticsDetail.java
+34
-0
WdtQimenStockoutOrder.java
...om/sfa/job/domain/order/entity/WdtQimenStockoutOrder.java
+0
-0
WdtQimenStockoutOrderDetail.java
.../job/domain/order/entity/WdtQimenStockoutOrderDetail.java
+253
-0
WdtQimenStockoutPositionDetail.java
...b/domain/order/entity/WdtQimenStockoutPositionDetail.java
+37
-0
WdtQimenStockOutPickPositionDetailMapper.java
...rder/mapper/WdtQimenStockOutPickPositionDetailMapper.java
+19
-0
WdtQimenStockoutGovSubsidyMapper.java
...domain/order/mapper/WdtQimenStockoutGovSubsidyMapper.java
+20
-0
WdtQimenStockoutLogisticsDetailMapper.java
...n/order/mapper/WdtQimenStockoutLogisticsDetailMapper.java
+20
-0
WdtQimenStockoutOrderDetailMapper.java
...omain/order/mapper/WdtQimenStockoutOrderDetailMapper.java
+14
-0
WdtQimenStockoutOrderMapper.java
.../job/domain/order/mapper/WdtQimenStockoutOrderMapper.java
+27
-0
WdtQimenStockoutPositionDetailMapper.java
...in/order/mapper/WdtQimenStockoutPositionDetailMapper.java
+19
-0
WdtPlatformMappingEnum.java
src/main/java/com/sfa/job/enums/WdtPlatformMappingEnum.java
+236
-0
SyncStockoutRequest.java
...a/com/sfa/job/pojo/order/request/SyncStockoutRequest.java
+19
-0
WdtSalesTradeQueryWithDetailVo.java
...ob/pojo/order/request/WdtSalesTradeQueryWithDetailVo.java
+4
-4
WdtStockoutSalesQueryWithDetailRequest.java
...order/request/WdtStockoutSalesQueryWithDetailRequest.java
+246
-0
WdtQimenStockoutBodyDto.java
.../sfa/job/pojo/order/response/WdtQimenStockoutBodyDto.java
+13
-0
WdtQimenStockoutDataDto.java
.../sfa/job/pojo/order/response/WdtQimenStockoutDataDto.java
+16
-0
WdtQimenStockoutResponseDto.java
.../job/pojo/order/response/WdtQimenStockoutResponseDto.java
+12
-0
WdtStockoutSalesQueryWithDetailDto.java
...jo/order/response/WdtStockoutSalesQueryWithDetailDto.java
+42
-0
QinceAllDealerQueryRequest.java
...fa/job/pojo/qince/request/QinceAllDealerQueryRequest.java
+8
-0
QinceDealerQueryRequest.java
...m/sfa/job/pojo/qince/request/QinceDealerQueryRequest.java
+10
-0
SyncOrderDetailDto.java
...in/java/com/sfa/job/pojo/response/SyncOrderDetailDto.java
+27
-8
IWdtQimenStockoutOrderSyncService.java
.../job/service/order/IWdtQimenStockoutOrderSyncService.java
+29
-0
FinanceOrderSyncServiceImpl.java
...a/job/service/order/impl/FinanceOrderSyncServiceImpl.java
+1
-1
WdtQimenOrderPayTimeSyncServiceImpl.java
...rvice/order/impl/WdtQimenOrderPayTimeSyncServiceImpl.java
+7
-8
WdtQimenOrderSyncServiceImpl.java
.../job/service/order/impl/WdtQimenOrderSyncServiceImpl.java
+19
-12
WdtQimenStockoutOrderSyncServiceImpl.java
...vice/order/impl/WdtQimenStockoutOrderSyncServiceImpl.java
+0
-0
IQinceDealerQueryService.java
...a/com/sfa/job/service/qince/IQinceDealerQueryService.java
+7
-0
IQinceUserStatisticService.java
...com/sfa/job/service/qince/IQinceUserStatisticService.java
+0
-1
QinceDealerQueryServiceImpl.java
...a/job/service/qince/impl/QinceDealerQueryServiceImpl.java
+33
-0
QinCeUtils.java
src/main/java/com/sfa/job/util/QinCeUtils.java
+51
-0
WdtQimenUtil.java
src/main/java/com/sfa/job/util/WdtQimenUtil.java
+8
-1
WdtQimenStockoutOrderTask.java
...a/com/sfa/job/xxljob/order/WdtQimenStockoutOrderTask.java
+82
-0
WdtQimenStockOutPickPositionDetailMapper.xml
...mapper/order/WdtQimenStockOutPickPositionDetailMapper.xml
+47
-0
WdtQimenStockoutGovSubsidyMapper.xml
...sources/mapper/order/WdtQimenStockoutGovSubsidyMapper.xml
+41
-0
WdtQimenStockoutLogisticsDetailMapper.xml
...es/mapper/order/WdtQimenStockoutLogisticsDetailMapper.xml
+48
-0
WdtQimenStockoutOrderDetailMapper.xml
...ources/mapper/order/WdtQimenStockoutOrderDetailMapper.xml
+272
-0
WdtQimenStockoutOrderMapper.xml
...in/resources/mapper/order/WdtQimenStockoutOrderMapper.xml
+0
-0
WdtQimenStockoutPositionDetailMapper.xml
...ces/mapper/order/WdtQimenStockoutPositionDetailMapper.xml
+47
-0
EventCallbackServiceImplTest.java
.../sfa/job/service/feishu/EventCallbackServiceImplTest.java
+6
-5
没有找到文件。
src/main/java/com/sfa/job/controller/order/WdtQimenStockoutOrderController.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
controller
.
order
;
import
com.sfa.job.pojo.order.request.SyncStockoutRequest
;
import
com.sfa.job.pojo.order.response.WdtStockoutSalesQueryWithDetailDto
;
import
com.sfa.job.pojo.response.SyncOrderDetailDto
;
import
com.sfa.job.service.order.IWdtQimenStockoutOrderSyncService
;
import
java.util.Date
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 销售出库单同步Controller
*/
@RestController
@RequestMapping
(
"/order/stockout"
)
public
class
WdtQimenStockoutOrderController
{
@Autowired
private
IWdtQimenStockoutOrderSyncService
stockoutOrderSyncService
;
/**
* 同步销售出库单
*
* @param startTime 开始时间(格式:yyyy-MM-dd HH:mm:ss)
* @param endTime 结束时间(格式:yyyy-MM-dd HH:mm:ss)
* @param shopNo 店铺编号
* @return 同步结果
*/
@GetMapping
(
"/sync"
)
public
SyncOrderDetailDto
syncStockoutOrder
(
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
Date
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
Date
endTime
,
@RequestParam
(
value
=
"pageSize"
,
required
=
false
,
defaultValue
=
"200"
)
Integer
pageSize
)
{
SyncStockoutRequest
syncStockoutRequest
=
new
SyncStockoutRequest
();
syncStockoutRequest
.
setStartTime
(
startTime
);
syncStockoutRequest
.
setEndTime
(
endTime
);
syncStockoutRequest
.
setSyncType
(
0
);
return
stockoutOrderSyncService
.
syncStockoutOrder
(
syncStockoutRequest
,
pageSize
);
}
/**
* 同步单个销售出库单
*
* @param stockoutNo 出库单编号
* @return 同步结果
*/
@GetMapping
(
"/sync/single"
)
public
WdtStockoutSalesQueryWithDetailDto
syncSingleStockoutOrder
(
@RequestParam
(
"stockoutNo"
)
String
stockoutNo
)
{
return
stockoutOrderSyncService
.
syncSingleStockoutOrder
(
stockoutNo
);
}
}
src/main/java/com/sfa/job/controller/qince/QinceDealerController.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
controller
.
qince
;
import
com.alibaba.fastjson.JSONArray
;
import
com.sfa.common.core.web.domain.AjaxResult
;
import
com.sfa.job.pojo.qince.request.QinceAllDealerQueryRequest
;
import
com.sfa.job.pojo.qince.request.QinceDealerQueryRequest
;
import
com.sfa.job.service.qince.IQinceDealerQueryService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* 勤策经销商查询Controller
*/
@Slf4j
@RestController
@RequestMapping
(
"/qince/dealer"
)
public
class
QinceDealerController
{
@Autowired
private
IQinceDealerQueryService
qinceDealerQueryService
;
/**
* 查询经销商(分页)
*
* @param request 查询参数
* @return 经销商数据列表
*/
@GetMapping
(
"/list"
)
public
AjaxResult
queryDealer
(
QinceDealerQueryRequest
request
)
{
try
{
JSONArray
dealers
=
qinceDealerQueryService
.
queryDealer
(
request
);
return
AjaxResult
.
success
(
"查询成功"
,
dealers
)
.
put
(
"page"
,
request
.
getPage
())
.
put
(
"rows"
,
request
.
getRows
())
.
put
(
"count"
,
dealers
!=
null
?
dealers
.
size
()
:
0
);
}
catch
(
Exception
e
)
{
log
.
error
(
"查询经销商异常:{}"
,
e
.
getMessage
(),
e
);
return
AjaxResult
.
error
(
"查询经销商异常:"
+
e
.
getMessage
());
}
}
/**
* 查询所有经销商(循环分页直到无数据)
*
* @param request 查询参数
* @return 所有经销商数据
*/
@GetMapping
(
"/list/all"
)
public
AjaxResult
queryAllDealer
(
QinceAllDealerQueryRequest
request
)
{
try
{
JSONArray
allDealers
=
qinceDealerQueryService
.
queryAllDealer
(
request
);
return
AjaxResult
.
success
(
"查询成功"
,
allDealers
)
.
put
(
"pageSize"
,
request
.
getPageSize
())
.
put
(
"totalCount"
,
allDealers
!=
null
?
allDealers
.
size
()
:
0
);
}
catch
(
Exception
e
)
{
log
.
error
(
"查询所有经销商异常:{}"
,
e
.
getMessage
(),
e
);
return
AjaxResult
.
error
(
"查询所有经销商异常:"
+
e
.
getMessage
());
}
}
}
src/main/java/com/sfa/job/domain/order/dao/WdtQimenOrderDao.java
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.FinanceOrder
;
import
com.sfa.job.domain.order.entity.WdtQimenOrder
;
import
java.util.List
;
...
...
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockOutPickPositionDetailDao.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockOutPickPositionDetail
;
import
java.util.List
;
/**
* 拣货位明细 DAO
*/
public
interface
WdtQimenStockOutPickPositionDetailDao
{
/**
* 保存拣货位明细
* @param detail 拣货位明细
* @return 保存结果
*/
int
save
(
WdtQimenStockOutPickPositionDetail
detail
);
/**
* 批量保存拣货位明细
* @param details 拣货位明细列表
* @return 保存结果
*/
int
batchSave
(
List
<
WdtQimenStockOutPickPositionDetail
>
details
);
/**
* 根据出库单明细ID查询拣货位明细
* @param stockoutDetailId 出库单明细ID
* @return 拣货位明细列表
*/
List
<
WdtQimenStockOutPickPositionDetail
>
listByStockoutDetailId
(
Integer
stockoutDetailId
);
/**
* 批量插入或更新拣货位明细
* @param details 拣货位明细列表
* @return 保存结果
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockOutPickPositionDetail
>
details
);
}
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutGovSubsidyDao.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutGovSubsidy
;
import
java.util.List
;
/**
* 国补信息 DAO
*/
public
interface
WdtQimenStockoutGovSubsidyDao
{
/**
* 保存国补信息
* @param subsidy 国补信息
* @return 保存结果
*/
int
save
(
WdtQimenStockoutGovSubsidy
subsidy
);
/**
* 批量保存国补信息
* @param subsidies 国补信息列表
* @return 保存结果
*/
int
batchSave
(
List
<
WdtQimenStockoutGovSubsidy
>
subsidies
);
/**
* 批量插入或更新国补信息
* @param subsidies 国补信息列表
* @return 保存结果
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutGovSubsidy
>
subsidies
);
/**
* 根据出库单号查询国补信息
* @param stockoutNo 出库单号
* @return 国补信息列表
*/
List
<
WdtQimenStockoutGovSubsidy
>
listByStockoutNo
(
String
stockoutNo
);
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutLogisticsDetailDao.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutLogisticsDetail
;
import
java.util.List
;
/**
* 物流单详情 DAO
*/
public
interface
WdtQimenStockoutLogisticsDetailDao
{
/**
* 保存物流单详情
* @param detail 物流单详情
* @return 保存结果
*/
int
save
(
WdtQimenStockoutLogisticsDetail
detail
);
/**
* 批量保存物流单详情
* @param details 物流单详情列表
* @return 保存结果
*/
int
batchSave
(
List
<
WdtQimenStockoutLogisticsDetail
>
details
);
/**
* 批量插入或更新物流单详情
* @param details 物流单详情列表
* @return 保存结果
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutLogisticsDetail
>
details
);
/**
* 根据出库单号查询物流单详情
* @param stockoutNo 出库单号
* @return 物流单详情列表
*/
List
<
WdtQimenStockoutLogisticsDetail
>
listByStockoutNo
(
String
stockoutNo
);
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutOrderDao.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrder
;
import
java.util.List
;
/**
* 销售出库单 DAO
*/
public
interface
WdtQimenStockoutOrderDao
{
/**
* 保存销售出库单
* @param stockoutOrder 销售出库单
* @return 保存结果
*/
int
save
(
WdtQimenStockoutOrder
stockoutOrder
);
/**
* 根据出库单编号查询
* @param stockoutNo 出库单编号
* @return 销售出库单
*/
WdtQimenStockoutOrder
getByStockoutNo
(
String
stockoutNo
);
/**
* 查询所有销售出库单
* @return 销售出库单列表
*/
List
<
WdtQimenStockoutOrder
>
listAll
();
int
insertOrUpdate
(
WdtQimenStockoutOrder
stockoutOrder
);
/**
* 批量插入或更新销售出库单
* @param stockoutOrders 销售出库单列表
* @return 影响的行数
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutOrder
>
stockoutOrders
);
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutOrderDaoImpl.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrder
;
import
com.sfa.job.domain.order.mapper.WdtQimenStockoutOrderMapper
;
import
org.springframework.stereotype.Repository
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* 销售出库单 DAO 实现
*/
@Repository
public
class
WdtQimenStockoutOrderDaoImpl
implements
WdtQimenStockoutOrderDao
{
private
static
final
int
BATCH_SIZE
=
20
;
// 分批大小,可根据实际情况调整
@Resource
private
WdtQimenStockoutOrderMapper
stockoutOrderMapper
;
@Override
public
int
save
(
WdtQimenStockoutOrder
stockoutOrder
)
{
return
stockoutOrderMapper
.
insert
(
stockoutOrder
);
}
@Override
public
WdtQimenStockoutOrder
getByStockoutNo
(
String
stockoutNo
)
{
return
stockoutOrderMapper
.
selectOne
(
new
LambdaQueryWrapper
<
WdtQimenStockoutOrder
>()
.
eq
(
WdtQimenStockoutOrder:
:
getOrderNo
,
stockoutNo
));
}
@Override
public
List
<
WdtQimenStockoutOrder
>
listAll
()
{
return
stockoutOrderMapper
.
selectList
(
null
);
}
@Override
public
int
insertOrUpdate
(
WdtQimenStockoutOrder
stockoutOrder
)
{
return
stockoutOrderMapper
.
insertOrUpdate
(
stockoutOrder
);
}
@Override
public
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutOrder
>
stockoutOrders
)
{
if
(
stockoutOrders
==
null
||
stockoutOrders
.
isEmpty
())
{
return
0
;
}
int
totalUpdated
=
0
;
// 分批处理,避免MySQL packet too large错误
for
(
int
i
=
0
;
i
<
stockoutOrders
.
size
();
i
+=
BATCH_SIZE
)
{
int
endIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
stockoutOrders
.
size
());
List
<
WdtQimenStockoutOrder
>
batch
=
stockoutOrders
.
subList
(
i
,
endIndex
);
totalUpdated
+=
stockoutOrderMapper
.
insertOrUpdateBatch
(
batch
);
}
return
totalUpdated
;
}
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutOrderDetailDao.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrderDetail
;
import
java.util.List
;
/**
* 销售出库单明细 DAO
*/
public
interface
WdtQimenStockoutOrderDetailDao
{
/**
* 保存销售出库单明细
* @param stockoutOrderDetail 销售出库单明细
* @return 保存结果
*/
int
save
(
WdtQimenStockoutOrderDetail
stockoutOrderDetail
);
/**
* 根据出库单编号查询明细
* @param stockoutNo 出库单编号
* @return 销售出库单明细列表
*/
List
<
WdtQimenStockoutOrderDetail
>
listByStockoutNo
(
String
stockoutNo
);
/**
* 批量保存销售出库单明细
* @param stockoutOrderDetails 销售出库单明细列表
* @return 保存结果
*/
int
batchSave
(
List
<
WdtQimenStockoutOrderDetail
>
stockoutOrderDetails
);
void
insertOrUpdateBatch
(
List
<
WdtQimenStockoutOrderDetail
>
stockoutOrderDetailList
);
}
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutOrderDetailDaoImpl.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrderDetail
;
import
com.sfa.job.domain.order.mapper.WdtQimenStockoutOrderDetailMapper
;
import
org.springframework.stereotype.Repository
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* 销售出库单明细 DAO 实现
*/
@Repository
public
class
WdtQimenStockoutOrderDetailDaoImpl
implements
WdtQimenStockoutOrderDetailDao
{
private
static
final
int
BATCH_SIZE
=
50
;
// 分批大小,避免MySQL packet too large错误
@Resource
private
WdtQimenStockoutOrderDetailMapper
stockoutOrderDetailMapper
;
@Override
public
int
save
(
WdtQimenStockoutOrderDetail
stockoutOrderDetail
)
{
return
stockoutOrderDetailMapper
.
insert
(
stockoutOrderDetail
);
}
@Override
public
List
<
WdtQimenStockoutOrderDetail
>
listByStockoutNo
(
String
stockoutNo
)
{
return
stockoutOrderDetailMapper
.
selectList
(
new
LambdaQueryWrapper
<
WdtQimenStockoutOrderDetail
>()
.
eq
(
WdtQimenStockoutOrderDetail:
:
getStockoutNo
,
stockoutNo
));
}
@Override
public
int
batchSave
(
List
<
WdtQimenStockoutOrderDetail
>
stockoutOrderDetails
)
{
int
count
=
0
;
for
(
WdtQimenStockoutOrderDetail
detail
:
stockoutOrderDetails
)
{
count
+=
stockoutOrderDetailMapper
.
insert
(
detail
);
}
return
count
;
}
@Override
public
void
insertOrUpdateBatch
(
List
<
WdtQimenStockoutOrderDetail
>
stockoutOrderDetailList
)
{
if
(
stockoutOrderDetailList
==
null
||
stockoutOrderDetailList
.
isEmpty
())
{
return
;
}
// 分批处理,避免MySQL packet too large错误
for
(
int
i
=
0
;
i
<
stockoutOrderDetailList
.
size
();
i
+=
BATCH_SIZE
)
{
int
endIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
stockoutOrderDetailList
.
size
());
List
<
WdtQimenStockoutOrderDetail
>
batch
=
stockoutOrderDetailList
.
subList
(
i
,
endIndex
);
stockoutOrderDetailMapper
.
insertOrUpdateBatch
(
batch
);
}
}
}
src/main/java/com/sfa/job/domain/order/dao/WdtQimenStockoutPositionDetailDao.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutPositionDetail
;
import
java.util.List
;
/**
* 出库货位明细 DAO
*/
public
interface
WdtQimenStockoutPositionDetailDao
{
/**
* 保存出库货位明细
* @param detail 出库货位明细
* @return 保存结果
*/
int
save
(
WdtQimenStockoutPositionDetail
detail
);
/**
* 批量保存出库货位明细
* @param details 出库货位明细列表
* @return 保存结果
*/
int
batchSave
(
List
<
WdtQimenStockoutPositionDetail
>
details
);
/**
* 根据出库单明细ID查询货位明细
* @param stockoutDetailId 出库单明细ID
* @return 货位明细列表
*/
List
<
WdtQimenStockoutPositionDetail
>
listByStockoutDetailId
(
Integer
stockoutDetailId
);
/**
* 批量插入或更新出库货位明细
* @param details 出库货位明细列表
* @return 保存结果
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutPositionDetail
>
details
);
}
src/main/java/com/sfa/job/domain/order/dao/impl/CollectOrderLogDaoImpl.java
浏览文件 @
1b6f3a72
...
...
@@ -32,7 +32,7 @@ public class CollectOrderLogDaoImpl implements CollectOrderLogDao {
collectOrderLog
.
setBatchNo
(
detailDto
.
getBatchNo
());
collectOrderLog
.
setLatestTime
(
detailDto
.
getLatestTime
()
);
collectOrderLog
.
setPageNo
(
detailDto
.
getPageNo
());
collectOrderLog
.
setTotalCount
(
detailDto
.
get
Total
Count
());
collectOrderLog
.
setTotalCount
(
detailDto
.
get
Order
Count
());
collectOrderLog
.
setRemark
(
detailDto
.
getRemark
());
logInfoMapper
.
insert
(
collectOrderLog
);
}
...
...
src/main/java/com/sfa/job/domain/order/dao/impl/WdtQimenStockOutPickPositionDetailDaoImpl.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.sfa.job.domain.order.dao.WdtQimenStockOutPickPositionDetailDao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockOutPickPositionDetail
;
import
com.sfa.job.domain.order.mapper.WdtQimenStockOutPickPositionDetailMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 拣货位明细 DAO 实现
*/
@DS
(
"bi"
)
@Repository
public
class
WdtQimenStockOutPickPositionDetailDaoImpl
implements
WdtQimenStockOutPickPositionDetailDao
{
private
static
final
int
BATCH_SIZE
=
50
;
// 分批大小,避免MySQL packet too large错误
@Autowired
private
WdtQimenStockOutPickPositionDetailMapper
wdtQimenStockOutPickPositionDetailMapper
;
@Override
public
int
save
(
WdtQimenStockOutPickPositionDetail
detail
)
{
return
wdtQimenStockOutPickPositionDetailMapper
.
insert
(
detail
);
}
@Override
public
int
batchSave
(
List
<
WdtQimenStockOutPickPositionDetail
>
details
)
{
if
(
details
==
null
||
details
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
details
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
details
.
size
());
List
<
WdtQimenStockOutPickPositionDetail
>
batchList
=
details
.
subList
(
i
,
toIndex
);
for
(
WdtQimenStockOutPickPositionDetail
detail
:
batchList
)
{
count
+=
wdtQimenStockOutPickPositionDetailMapper
.
insert
(
detail
);
}
}
return
count
;
}
@Override
public
List
<
WdtQimenStockOutPickPositionDetail
>
listByStockoutDetailId
(
Integer
stockoutDetailId
)
{
return
wdtQimenStockOutPickPositionDetailMapper
.
selectList
(
new
QueryWrapper
<
WdtQimenStockOutPickPositionDetail
>()
.
eq
(
"stockout_detail_id"
,
stockoutDetailId
)
);
}
@Override
public
int
insertOrUpdateBatch
(
List
<
WdtQimenStockOutPickPositionDetail
>
details
)
{
if
(
details
==
null
||
details
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
details
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
details
.
size
());
List
<
WdtQimenStockOutPickPositionDetail
>
batchList
=
details
.
subList
(
i
,
toIndex
);
count
+=
wdtQimenStockOutPickPositionDetailMapper
.
insertOrUpdateBatch
(
batchList
);
}
return
count
;
}
}
src/main/java/com/sfa/job/domain/order/dao/impl/WdtQimenStockoutGovSubsidyDaoImpl.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.sfa.job.domain.order.dao.WdtQimenStockoutGovSubsidyDao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutGovSubsidy
;
import
com.sfa.job.domain.order.mapper.WdtQimenStockoutGovSubsidyMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 国补信息 DAO 实现
*/
@DS
(
"bi"
)
@Repository
public
class
WdtQimenStockoutGovSubsidyDaoImpl
implements
WdtQimenStockoutGovSubsidyDao
{
private
static
final
int
BATCH_SIZE
=
50
;
// 分批大小,避免MySQL packet too large错误
@Autowired
private
WdtQimenStockoutGovSubsidyMapper
wdtQimenStockoutGovSubsidyMapper
;
@Override
public
int
save
(
WdtQimenStockoutGovSubsidy
subsidy
)
{
return
wdtQimenStockoutGovSubsidyMapper
.
insert
(
subsidy
);
}
@Override
public
int
batchSave
(
List
<
WdtQimenStockoutGovSubsidy
>
subsidies
)
{
if
(
subsidies
==
null
||
subsidies
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
subsidies
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
subsidies
.
size
());
List
<
WdtQimenStockoutGovSubsidy
>
batchList
=
subsidies
.
subList
(
i
,
toIndex
);
for
(
WdtQimenStockoutGovSubsidy
subsidy
:
batchList
)
{
count
+=
wdtQimenStockoutGovSubsidyMapper
.
insert
(
subsidy
);
}
}
return
count
;
}
@Override
public
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutGovSubsidy
>
subsidies
)
{
if
(
subsidies
==
null
||
subsidies
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
subsidies
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
subsidies
.
size
());
List
<
WdtQimenStockoutGovSubsidy
>
batchList
=
subsidies
.
subList
(
i
,
toIndex
);
count
+=
wdtQimenStockoutGovSubsidyMapper
.
insertOrUpdateBatch
(
batchList
);
}
return
count
;
}
@Override
public
List
<
WdtQimenStockoutGovSubsidy
>
listByStockoutNo
(
String
stockoutNo
)
{
return
wdtQimenStockoutGovSubsidyMapper
.
selectList
(
new
QueryWrapper
<
WdtQimenStockoutGovSubsidy
>()
.
eq
(
"stockout_no"
,
stockoutNo
)
);
}
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/dao/impl/WdtQimenStockoutLogisticsDetailDaoImpl.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.sfa.job.domain.order.dao.WdtQimenStockoutLogisticsDetailDao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutLogisticsDetail
;
import
com.sfa.job.domain.order.mapper.WdtQimenStockoutLogisticsDetailMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 物流单详情 DAO 实现
*/
@DS
(
"bi"
)
@Repository
public
class
WdtQimenStockoutLogisticsDetailDaoImpl
implements
WdtQimenStockoutLogisticsDetailDao
{
private
static
final
int
BATCH_SIZE
=
50
;
// 分批大小,避免MySQL packet too large错误
@Autowired
private
WdtQimenStockoutLogisticsDetailMapper
wdtQimenStockoutLogisticsDetailMapper
;
@Override
public
int
save
(
WdtQimenStockoutLogisticsDetail
detail
)
{
return
wdtQimenStockoutLogisticsDetailMapper
.
insert
(
detail
);
}
@Override
public
int
batchSave
(
List
<
WdtQimenStockoutLogisticsDetail
>
details
)
{
if
(
details
==
null
||
details
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
details
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
details
.
size
());
List
<
WdtQimenStockoutLogisticsDetail
>
batchList
=
details
.
subList
(
i
,
toIndex
);
for
(
WdtQimenStockoutLogisticsDetail
detail
:
batchList
)
{
count
+=
wdtQimenStockoutLogisticsDetailMapper
.
insert
(
detail
);
}
}
return
count
;
}
@Override
public
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutLogisticsDetail
>
details
)
{
if
(
details
==
null
||
details
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
details
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
details
.
size
());
List
<
WdtQimenStockoutLogisticsDetail
>
batchList
=
details
.
subList
(
i
,
toIndex
);
count
+=
wdtQimenStockoutLogisticsDetailMapper
.
insertOrUpdateBatch
(
batchList
);
}
return
count
;
}
@Override
public
List
<
WdtQimenStockoutLogisticsDetail
>
listByStockoutNo
(
String
stockoutNo
)
{
return
wdtQimenStockoutLogisticsDetailMapper
.
selectList
(
new
QueryWrapper
<
WdtQimenStockoutLogisticsDetail
>()
.
eq
(
"stockout_no"
,
stockoutNo
)
);
}
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/dao/impl/WdtQimenStockoutPositionDetailDaoImpl.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.sfa.job.domain.order.dao.WdtQimenStockoutPositionDetailDao
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutPositionDetail
;
import
com.sfa.job.domain.order.mapper.WdtQimenStockoutPositionDetailMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* 出库货位明细 DAO 实现
*/
@DS
(
"bi"
)
@Repository
public
class
WdtQimenStockoutPositionDetailDaoImpl
implements
WdtQimenStockoutPositionDetailDao
{
private
static
final
int
BATCH_SIZE
=
50
;
// 分批大小,避免MySQL packet too large错误
@Autowired
private
WdtQimenStockoutPositionDetailMapper
wdtQimenStockoutPositionDetailMapper
;
@Override
public
int
save
(
WdtQimenStockoutPositionDetail
detail
)
{
return
wdtQimenStockoutPositionDetailMapper
.
insert
(
detail
);
}
@Override
public
int
batchSave
(
List
<
WdtQimenStockoutPositionDetail
>
details
)
{
if
(
details
==
null
||
details
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
details
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
details
.
size
());
List
<
WdtQimenStockoutPositionDetail
>
batchList
=
details
.
subList
(
i
,
toIndex
);
for
(
WdtQimenStockoutPositionDetail
detail
:
batchList
)
{
count
+=
wdtQimenStockoutPositionDetailMapper
.
insert
(
detail
);
}
}
return
count
;
}
@Override
public
List
<
WdtQimenStockoutPositionDetail
>
listByStockoutDetailId
(
Integer
stockoutDetailId
)
{
return
wdtQimenStockoutPositionDetailMapper
.
selectList
(
new
com
.
baomidou
.
mybatisplus
.
core
.
conditions
.
query
.
QueryWrapper
<
WdtQimenStockoutPositionDetail
>()
.
eq
(
"stockout_detail_id"
,
stockoutDetailId
)
);
}
@Override
public
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutPositionDetail
>
details
)
{
if
(
details
==
null
||
details
.
isEmpty
())
{
return
0
;
}
int
count
=
0
;
for
(
int
i
=
0
;
i
<
details
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
details
.
size
());
List
<
WdtQimenStockoutPositionDetail
>
batchList
=
details
.
subList
(
i
,
toIndex
);
count
+=
wdtQimenStockoutPositionDetailMapper
.
insertOrUpdateBatch
(
batchList
);
}
return
count
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtQimenOrderPayTime.java
浏览文件 @
1b6f3a72
...
...
@@ -78,6 +78,14 @@ public class WdtQimenOrderPayTime {
* 分销商昵称
*/
private
String
fenxiaoNick
;
/**
* 分销商id
*/
private
String
fenxiaoId
;
/**
* 分销商name
*/
private
String
fenxiaoName
;
/**
* 下单时间(毫秒级时间戳,例如:1631861379000)
*/
...
...
src/main/java/com/sfa/job/domain/order/entity/WdtQimenStockOutPickPositionDetail.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
entity
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 拣货位明细
*/
@Data
@TableName
(
"wdt_qimen_stockout_pick_position_detail"
)
public
class
WdtQimenStockOutPickPositionDetail
{
/** 货位明细id */
private
Integer
recId
;
/** 销售出库单详情id */
private
Integer
stockoutDetailId
;
/** 货位id */
private
Integer
positionId
;
/** 货位号 */
private
String
positionNo
;
/** 有效期 */
private
String
expireDate
;
/** 生产日期 */
private
String
productionDate
;
/** 批次号 */
private
String
batchNo
;
/** 当前货位出库总货品数量 */
private
BigDecimal
positionGoodsCount
;
/** 商家编码 */
private
String
specNo
;
/** 创建时间 */
private
Date
createTime
;
/** 更新时间 */
private
Date
updateTime
;
}
src/main/java/com/sfa/job/domain/order/entity/WdtQimenStockoutGovSubsidy.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 国补信息
*/
@Data
@TableName
(
"wdt_qimen_stockout_gov_subsidy"
)
public
class
WdtQimenStockoutGovSubsidy
{
/** 原始单号 */
private
String
tid
;
/** 原始子单号 */
private
String
oid
;
/** 公司主体名称 */
private
String
corpEntityName
;
}
src/main/java/com/sfa/job/domain/order/entity/WdtQimenStockoutLogisticsDetail.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
entity
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
@Data
@TableName
(
"wdt_qimen_stockout_logistics_detail"
)
public
class
WdtQimenStockoutLogisticsDetail
{
/** 货位明细id */
private
Integer
recId
;
/** 销售出库单详情id */
private
Integer
stockoutDetailId
;
/** 货位id */
private
Integer
positionId
;
/** 货位号 */
private
String
positionNo
;
/** 有效期 */
private
String
expireDate
;
/** 生产日期 */
private
String
productionDate
;
/** 批次号 */
private
String
batchNo
;
/** 当前货位出库总货品数量 */
private
BigDecimal
positionGoodsCount
;
/** 批次备注 */
private
String
batchRemark
;
/** 创建时间 */
private
Date
createTime
;
/** 更新时间 */
private
Date
updateTime
;
}
src/main/java/com/sfa/job/domain/order/entity/WdtQimenStockoutOrder.java
0 → 100644
浏览文件 @
1b6f3a72
差异被折叠。
点击展开。
src/main/java/com/sfa/job/domain/order/entity/WdtQimenStockoutOrderDetail.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* 销售出库单明细
* 对应表:wdt_qimen_stockout_order_detail
*/
@Data
@TableName
(
"wdt_qimen_stockout_order_detail"
)
public
class
WdtQimenStockoutOrderDetail
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** 销售出库单详情的id */
private
Integer
recId
;
/** 出库单id */
private
Integer
stockoutId
;
/** 出库单号 */
private
String
stockoutNo
;
/** 订单明细id */
private
Integer
srcOrderDetailId
;
/** 单品id(系统单品主键) */
private
Integer
specId
;
/** 商家编码 */
private
String
specNo
;
/** 货品数量(按货位分组则为总数量) */
private
BigDecimal
goodsCount
;
/** 总成本 成本价*货品数量 */
private
BigDecimal
totalAmount
;
/** 成交价(价格变化时不变,取实际成交价用sharePrice) */
private
BigDecimal
sellPrice
;
/** 出库单明细备注 */
private
String
remark
;
/** 货品名称 */
private
String
goodsName
;
/** 货品编号 */
private
String
goodsNo
;
/** 规格名称 */
private
String
specName
;
/** 规格码 */
private
String
specCode
;
/** 货品成本 */
private
BigDecimal
costPrice
;
/** 总重量 */
private
BigDecimal
weight
;
/** 货品id(系统货品主键) */
private
Integer
goodsId
;
/** 规格自定义属性1 */
private
String
prop1
;
/** 规格自定义属性2 */
private
String
prop2
;
/** 规格自定义属性3 */
private
String
prop3
;
/** 规格自定义属性4 */
private
String
prop4
;
/** 规格自定义属性5 */
private
String
prop5
;
/** 规格自定义属性6 */
private
String
prop6
;
/** 平台id */
private
Integer
platformId
;
/** 平台名称 */
private
String
platformName
;
/** 退款状态 0=无退款 5=退款成功等 */
private
Integer
refundStatus
;
/** 单价/货品原单价 */
private
BigDecimal
marketPrice
;
/** 货品总优惠 */
private
BigDecimal
discount
;
/** 系统销售出库明细对应的货品成交价 */
private
BigDecimal
sharePrice
;
/** 总货款/货品成交总价 */
private
BigDecimal
shareAmount
;
/** 税率 */
private
BigDecimal
taxRate
;
/** 主条码 */
private
String
barcode
;
/** 基本单位名称 */
private
String
unitName
;
/** 订单货品(子订单)id */
private
Integer
saleOrderId
;
/** 是否是赠品 0=非赠品 1=自动赠送等 */
private
Integer
giftType
;
/** 原始子订单号 */
private
String
srcOid
;
/** 子单原始订单号 */
private
String
srcTid
;
/** 订单内部来源 0=无来源 1=手机等 */
private
Integer
fromMask
;
/** 货品类型 0=其它 1=销售货品等 */
private
Integer
goodsType
;
/** 货品自定义属性1 */
private
String
goodProp1
;
/** 货品自定义属性2 */
private
String
goodProp2
;
/** 货品自定义属性3 */
private
String
goodProp3
;
/** 货品自定义属性4 */
private
String
goodProp4
;
/** 货品自定义属性5 */
private
String
goodProp5
;
/** 货品自定义属性6 */
private
String
goodProp6
;
/** 当need_sn=true时返回,英文逗号分隔的sn */
private
String
snList
;
/** 组合装编码 */
private
String
suiteNo
;
/** 组合装数量 */
private
BigDecimal
suiteNum
;
/** 分摊邮费 */
private
BigDecimal
sharePostAmount
;
/** 已付 */
private
BigDecimal
paid
;
/** 是否包装 true=是 false=否 */
private
Boolean
isPackage
;
/** 品牌编号 */
private
String
brandNo
;
/** 品牌名称 */
private
String
brandName
;
/** 源单据类别 1=销售订单 */
private
Integer
srcOrderType
;
/** 基本单位id */
private
Integer
baseUnitId
;
/** 辅助单位 */
private
Integer
unitId
;
/** 单位换算 */
private
BigDecimal
unitRatio
;
/** 辅助数量 */
private
BigDecimal
num2
;
/** 货品数量 */
private
BigDecimal
num
;
/** 出库货位id */
private
Integer
positionId
;
/** 指定出库批次 */
private
Integer
batchId
;
/** 是否验货 */
private
Integer
isExamined
;
/** 有效期 格式:yyyy-MM-dd HH:mm:ss */
private
String
expireDate
;
/** 扫描方式 0=未验货 1=扫描验货等 */
private
Integer
scanType
;
/** 最后修改时间 格式:yyyy-MM-dd HH:mm:ss */
private
String
modifiedDate
;
/** 创建时间 格式:yyyy-MM-dd HH:mm:ss */
private
String
createdDate
;
/** 分类名称 */
private
String
className
;
/** 平台货品id */
private
String
apiGoodsId
;
/** 平台规格id */
private
String
apiSpecId
;
/** 打包积分 */
private
BigDecimal
packScore
;
/** 拣货积分 */
private
BigDecimal
pickScore
;
/** 验货积分 */
private
BigDecimal
scanScore
;
/** 平台货品名称 */
private
String
apiGoodsName
;
/** 批次备注 */
private
String
batchRemark
;
/** 分销商昵称 */
private
String
fenxiaoNick
;
/** 分销商id */
private
String
fenxiaoId
;
/** 分销商name */
private
String
fenxiaoName
;
/** 出库货位明细列表 */
@TableField
(
exist
=
false
)
private
List
<
WdtQimenStockoutPositionDetail
>
positionDetailsList
;
/** 拣货位明细列表 */
@TableField
(
exist
=
false
)
private
List
<
WdtQimenStockOutPickPositionDetail
>
pickPositionDetailsList
;
/** 创建者 */
private
String
createBy
;
/** 创建人ID */
private
Long
createUserId
;
/** 更新者 */
private
String
updateBy
;
/** 更新人ID */
private
Long
updateUserId
;
/** 删除标志(0未删除,1已删除) */
private
String
delFlag
;
/** 创建时间 */
private
Date
createTime
;
/** 更新时间 */
private
Date
updateTime
;
// 实际成本
private
BigDecimal
actualCost
;
// 标准成本
private
BigDecimal
standardCost
;
// 实际成本*num 实际总成本
private
BigDecimal
sumActualCost
;
// 标准成本*num 标准总成本
private
BigDecimal
sumStandardCost
;
/**
* 设置分销商ID和名称
* 从fenxiaoNick中解析出fenxiaoId和fenxiaoName
*/
public
void
setFenxiaoIdAndName
()
{
if
(
fenxiaoNick
!=
null
&&
!
fenxiaoNick
.
isEmpty
())
{
this
.
fenxiaoId
=
extractDistributorId
(
fenxiaoNick
);
this
.
fenxiaoName
=
extractDistributorName
(
fenxiaoNick
);
}
}
/**
* 从输入字符串中提取分销商 ID
*/
private
String
extractDistributorId
(
String
input
)
{
if
(
input
==
null
||
input
.
isEmpty
())
{
return
""
;
}
java
.
util
.
regex
.
Pattern
pattern
=
java
.
util
.
regex
.
Pattern
.
compile
(
"id:(\\d+);"
);
java
.
util
.
regex
.
Matcher
matcher
=
pattern
.
matcher
(
input
);
if
(
matcher
.
find
())
{
return
matcher
.
group
(
1
);
}
return
""
;
}
/**
* 从输入字符串中提取分销商名称
*/
private
String
extractDistributorName
(
String
input
)
{
if
(
input
==
null
||
input
.
isEmpty
())
{
return
""
;
}
java
.
util
.
regex
.
Pattern
pattern
=
java
.
util
.
regex
.
Pattern
.
compile
(
";(.*)】"
);
java
.
util
.
regex
.
Matcher
matcher
=
pattern
.
matcher
(
input
);
if
(
matcher
.
find
())
{
return
matcher
.
group
(
1
);
}
return
""
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtQimenStockoutPositionDetail.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
entity
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
/**
* 出库货位明细
*/
@Data
@TableName
(
"wdt_qimen_stockout_position_detail"
)
public
class
WdtQimenStockoutPositionDetail
{
/** 货位明细id */
private
Integer
recId
;
/** 销售出库单详情id */
private
Integer
stockoutDetailId
;
/** 货位id */
private
Integer
positionId
;
/** 货位号 */
private
String
positionNo
;
/** 有效期 */
private
String
expireDate
;
/** 生产日期 */
private
String
productionDate
;
/** 批次号 */
private
String
batchNo
;
/** 当前货位出库总货品数量 */
private
BigDecimal
positionGoodsCount
;
/** 批次备注 */
private
String
batchRemark
;
/** 创建时间 */
private
Date
createTime
;
/** 更新时间 */
private
Date
updateTime
;
}
src/main/java/com/sfa/job/domain/order/mapper/WdtQimenStockOutPickPositionDetailMapper.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockOutPickPositionDetail
;
import
java.util.List
;
/**
* 拣货位明细 Mapper
*/
public
interface
WdtQimenStockOutPickPositionDetailMapper
extends
BaseMapper
<
WdtQimenStockOutPickPositionDetail
>
{
/**
* 批量插入或更新
* @param details 明细列表
* @return 影响的行数
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockOutPickPositionDetail
>
details
);
}
src/main/java/com/sfa/job/domain/order/mapper/WdtQimenStockoutGovSubsidyMapper.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutGovSubsidy
;
import
java.util.List
;
/**
* 国补信息 Mapper
*/
public
interface
WdtQimenStockoutGovSubsidyMapper
extends
BaseMapper
<
WdtQimenStockoutGovSubsidy
>
{
/**
* 批量插入或更新国补信息
* @param subsidies 国补信息列表
* @return 影响的行数
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutGovSubsidy
>
subsidies
);
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/mapper/WdtQimenStockoutLogisticsDetailMapper.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutLogisticsDetail
;
import
java.util.List
;
/**
* 物流单详情 Mapper
*/
public
interface
WdtQimenStockoutLogisticsDetailMapper
extends
BaseMapper
<
WdtQimenStockoutLogisticsDetail
>
{
/**
* 批量插入或更新物流单详情
* @param details 物流单详情列表
* @return 影响的行数
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutLogisticsDetail
>
details
);
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/mapper/WdtQimenStockoutOrderDetailMapper.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
java.util.List
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrderDetail
;
/**
* 销售出库单明细 Mapper
*/
public
interface
WdtQimenStockoutOrderDetailMapper
extends
BaseMapper
<
WdtQimenStockoutOrderDetail
>
{
void
insertOrUpdateBatch
(
List
<
WdtQimenStockoutOrderDetail
>
stockoutOrderDetailList
);
}
src/main/java/com/sfa/job/domain/order/mapper/WdtQimenStockoutOrderMapper.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrder
;
import
java.util.List
;
/**
* 销售出库单 Mapper
*/
public
interface
WdtQimenStockoutOrderMapper
extends
BaseMapper
<
WdtQimenStockoutOrder
>
{
/**
* 插入或更新销售出库单
* @param stockoutOrder 销售出库单
* @return 影响的行数
*/
int
insertOrUpdate
(
WdtQimenStockoutOrder
stockoutOrder
);
/**
* 批量插入或更新销售出库单
* @param stockoutOrders 销售出库单列表
* @return 影响的行数
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutOrder
>
stockoutOrders
);
}
\ No newline at end of file
src/main/java/com/sfa/job/domain/order/mapper/WdtQimenStockoutPositionDetailMapper.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutPositionDetail
;
import
java.util.List
;
/**
* 出库货位明细 Mapper
*/
public
interface
WdtQimenStockoutPositionDetailMapper
extends
BaseMapper
<
WdtQimenStockoutPositionDetail
>
{
/**
* 批量插入或更新
* @param details 明细列表
* @return 影响的行数
*/
int
insertOrUpdateBatch
(
List
<
WdtQimenStockoutPositionDetail
>
details
);
}
src/main/java/com/sfa/job/enums/WdtPlatformMappingEnum.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
enums
;
import
lombok.Getter
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* 旺店通平台映射信息枚举
* 基于旺店通开放平台文档和常见映射关系
*/
@Getter
public
enum
WdtPlatformMappingEnum
{
// 平台映射
OFFLINE
(
0
,
"线下"
),
TAOBAO
(
1
,
"淘宝"
),
TAOBAO_FENXIAO
(
2
,
"淘宝分销"
),
JINGDONG
(
3
,
"京东"
),
PAIPAI
(
4
,
"拍拍"
),
AMAZON
(
5
,
"亚马逊"
),
YHD
(
6
,
"1号店"
),
DANGDANG
(
7
,
"当当网"
),
GOME
(
8
,
"国美"
),
ALIBABA
(
9
,
"阿里巴巴"
),
EC_SHOP
(
10
,
"ECShop"
),
MIKAOLIN
(
11
,
"麦考林"
),
V_PLUS
(
12
,
"V+"
),
SUNING
(
13
,
"苏宁"
),
VIPSHOP
(
14
,
"唯品会"
),
YIXUN
(
15
,
"易迅"
),
JUMEI
(
16
,
"聚美"
),
YOUZAN
(
17
,
"有赞(口袋通)"
),
HIShop
(
18
,
"Hishop"
),
HUICE_PRODUCT
(
19
,
"慧策产品"
),
MEILISHUO
(
20
,
"美丽说"
),
MOGUJIE
(
21
,
"蘑菇街"
),
BEIBEI
(
22
,
"贝贝网"
),
EC_STORE
(
23
,
"ECstore"
),
ZHE800
(
24
,
"折800"
),
RONG_EGOU
(
25
,
"融e购"
),
CHUANYI_ZHUSHOU
(
26
,
"穿衣助手"
),
CHUCHUJIE
(
27
,
"楚楚街"
),
WEIMENG
(
28
,
"微盟"
),
JUANPI
(
29
,
"卷皮网"
),
SHUNFENG_HEIKE
(
30
,
"顺丰嘿客"
),
WEISHOP
(
32
,
"微店"
),
BAIDU_MALL
(
33
,
"百度mall"
),
MIA
(
34
,
"蜜芽"
),
MINGXING_YICHU
(
35
,
"明星衣橱"
),
SHANRONG_SHANGCHENG
(
36
,
"善融商城"
),
ALIEXPRESS
(
37
,
"速卖通"
),
MENGDIAN
(
38
,
"萌店"
),
PINDUODUO
(
39
,
"拼多多"
),
JINGDONG_DAOJIA
(
40
,
"京东到家"
),
BAIDU_WAIMAI
(
41
,
"百度外卖"
),
MEITUAN_WAIMAI
(
42
,
"美团外卖"
),
ELEME
(
45
,
"饿了么"
),
WOMAIGOU
(
46
,
"我买网"
),
RENRENDIAN
(
47
,
"人人店"
),
MEITUN_MAMA
(
48
,
"美囤妈妈(宝宝树)"
),
JIUYI_PINTUAN
(
49
,
"91拼团"
),
KOALA
(
50
,
"考拉海购"
),
QIANMI_WANG
(
51
,
"千米网"
),
TESHEHUI
(
52
,
"特奢汇"
),
CHUCHUJIE_PINTUAN
(
53
,
"楚楚街拼团"
),
HAIZIWANG
(
55
,
"孩子王"
),
XIAOHONGSHU
(
56
,
"小红书"
),
GEGEJIA
(
57
,
"格格家"
),
YUNJI
(
58
,
"云集"
),
CHUCHUTONG
(
59
,
"楚楚通"
),
FANLI_WANG
(
60
,
"返利网"
),
JIUXIAN_WANG
(
61
,
"酒仙网"
),
PINGAN_HAOYISHENG
(
62
,
"平安好医生"
),
XIA_CHUFANG
(
63
,
"下厨房"
),
HAOSHIQI
(
64
,
"好食期"
),
DABIAN_DIANDIAN
(
65
,
"大V店"
),
HAOYIKU
(
66
,
"好衣库(鲸灵)"
),
DALINGJIA
(
67
,
"达令家"
),
AI_KUCUN
(
68
,
"爱库存"
),
DOUYIN_DIAN
(
69
,
"抖店(放心购)"
),
MEIRI_YITAO
(
70
,
"每日一淘"
),
BEIKE_YOUPIN
(
71
,
"贝壳优品"
),
XIAOMI_YOUPIN
(
72
,
"小米有品"
),
WEILAI_JISHI
(
73
,
"未来集市"
),
AIQIYI_SHANGCHENG
(
74
,
"爱奇艺商城"
),
KUAISHOU_XIAODIAN
(
75
,
"快手小店"
),
MOKUAI_XINGXUAN
(
76
,
"魔筷星选"
),
HAIPAKE
(
77
,
"海拍客"
),
YIQIANBAO
(
78
,
"壹钱包"
),
MEIRI_YOUXIAN
(
79
,
"每日优鲜"
),
WANGYI_YANXUAN
(
80
,
"网易严选"
),
DUODIAN
(
81
,
"多点"
),
TIANMAO_CHAOSHI
(
82
,
"天猫超市一盘货"
),
WEIXIN_VIDEONO
(
83
,
"微信视频号"
),
JIAOLAN_JIaren
(
84
,
"娇兰佳人"
),
TUHU_YANGCHE
(
85
,
"途虎养车"
),
JINRI_BAOTUAN
(
86
,
"今日爆团"
),
ALI_JIANKANG
(
87
,
"阿里健康大药房"
),
BIYAO
(
88
,
"必要"
),
TENCENT_FENGYE
(
89
,
"腾讯枫页"
),
WEIXIN_XIAOSHANGDIAN
(
90
,
"微信小商店"
),
KUAISHOU_JINNIU
(
91
,
"快手金牛"
),
MODIAN
(
92
,
"摩点"
),
YIDINGHUO
(
93
,
"易订货"
),
TIANMAO_GUOJI_ZHIYING
(
94
,
"天猫国际直营(轻轨三号线)"
),
YIKE
(
96
,
"驿氪"
),
MAMA_LIANGPIN
(
97
,
"妈妈良品"
),
XIAOMANG_DIANSHANG
(
98
,
"小芒电商"
),
KAMEILA
(
99
,
"卡美啦"
),
NIANFENG_DADANGJIA
(
100
,
"年丰大当家"
),
DEWU
(
101
,
"得物"
),
KOALA_SHANGJIA_ZHIFA
(
102
,
"考拉商家直发"
),
MEITUAN_SHANGOU
(
103
,
"美团闪购"
),
XINHUA_SHUDIAN
(
104
,
"新华书店"
),
YUNHUO_YOUXUAN
(
105
,
"云货优选"
),
LINGSHOUTONG
(
106
,
"零售通"
),
YIJIUP
(
107
,
"易久批"
),
TENCENT_HUIJU
(
108
,
"腾讯惠聚"
),
XIAOE_PINPIN
(
109
,
"小鹅拼拼"
),
DU_XIAODIAN
(
110
,
"度小店"
),
FENGYE_XIAODIAN
(
111
,
"枫页小店"
),
DINGXIANG_MAMA
(
112
,
"丁香妈妈"
),
YAOSHI_BANG
(
113
,
"药师帮"
),
FENGLEI
(
114
,
"峰雷"
),
SHEIN
(
115
,
"SHEIN希音"
),
BILIBILI_HUIYUANGOU
(
116
,
"bilibili会员购"
),
QUNJIELONG
(
117
,
"群接龙"
),
ZHAOSHANG_YINHANG
(
118
,
"招商银行掌上生活"
),
HUAWEI_SHANGCHENG
(
119
,
"华为商城"
),
WEIXIN_LIANJIEQI
(
120
,
"微信连接器"
),
DANCHUANG_VTN
(
121
,
"单创VTN"
),
TIANHONG_SHANGCHENG
(
122
,
"天虹商城"
),
YOULU_WANG
(
123
,
"有路网"
),
FENXIAO
(
125
,
"分销"
),
DINGZHI
(
126
,
"定制"
),
QITA_ZIYOU_SHANGCHENG
(
127
,
"其他(自有商城)"
),
MAOXIANG_KAOLA_ZHIYING
(
128
,
"猫享-考拉自营"
),
B_PLUS
(
131
,
"B+"
),
XIANYU
(
134
,
"闲鱼"
),
XIAYATONG
(
135
,
"小亚通"
),
BAIDU_YINGXIAO
(
136
,
"百度营销2.0/百度优选"
),
TAOBAO_DAIDA_DAIFA
(
137
,
"淘宝代打代发"
),
ZHENKUNXING
(
138
,
"震坤行"
),
DOUYIN_GONGXIAO
(
139
,
"抖音供销"
),
SHUNLIAN_DONGLI
(
140
,
"顺联动力"
),
XINGYUN_HUOCANG
(
141
,
"行云货仓"
),
MIAOJIE
(
142
,
"喵街"
),
CHUANGHUO
(
144
,
"闯货"
),
BAIDU_JIANKANG
(
146
,
"百度健康"
),
WEIBO_DIANSHANG
(
148
,
"微博电商"
),
WEISHANG_XIANGCE
(
150
,
"微商相册"
),
HELIANG
(
151
,
"禾量"
),
HUACHENG_NONGFU
(
152
,
"花城农夫"
),
DOUYIN_CHAOSHI
(
154
,
"抖音超市"
),
MEITUAN_SHANDIANCANG
(
159
,
"美团闪电仓"
),
YIZHIFU
(
164
,
"翼支付"
),
BENLAI_SHENGHUO
(
165
,
"本来生活"
),
SHULIAN_TONG
(
166
,
"书链通"
),
DAMA
(
168
,
"达摩"
),
DONGFANG_ZHENXUAN
(
169
,
"东方甄选"
),
YISHANG_CHUANGXIN_SIYU
(
171
,
"一商创信私域"
),
TAOBAO_MAICAI
(
172
,
"淘宝买菜"
),
HEMA_YUNCHAO
(
173
,
"盒马云超"
),
JUHAOMAI
(
174
,
"聚好麦"
),
DASHI_XIONG
(
176
,
"大师熊"
),
YAOJIUJIU
(
177
,
"药九九"
),
FANMILIN
(
179
,
"梵蜜琳"
),
ZHAOCAI_HUIGOU
(
180
,
"招财慧购"
),
BINGKUN
(
182
,
"秉坤"
),
SUOYOU_NVSHENG
(
188
,
"所有女生"
),
XINGMA_YOUXUAN
(
192
,
"星妈优选"
),
JINGDONG_YUNcang_VMI
(
194
,
"京东云仓VMI"
),
HAOYOUDUO
(
199
,
"好又多"
),
KUajing
(
202
,
"跨境"
),
WEISHANGCHENG
(
204
,
"唯商城"
);
private
final
Integer
platformId
;
private
final
String
platformName
;
WdtPlatformMappingEnum
(
Integer
platformId
,
String
platformName
)
{
this
.
platformId
=
platformId
;
this
.
platformName
=
platformName
;
}
// 平台ID到平台名称的映射缓存
private
static
final
Map
<
Integer
,
String
>
platformMap
=
new
HashMap
<>();
// 静态初始化块,构建映射关系
static
{
for
(
WdtPlatformMappingEnum
enumValue
:
values
())
{
platformMap
.
put
(
enumValue
.
platformId
,
enumValue
.
platformName
);
}
}
/**
* 根据平台ID获取平台名称
* @param platformId 平台ID
* @return 平台名称,若不存在则返回null
*/
public
static
String
getPlatformName
(
Integer
platformId
)
{
return
platformMap
.
get
(
platformId
);
}
/**
* 根据平台名称获取平台ID
* @param platformName 平台名称
* @return 平台ID,若不存在则返回null
*/
public
static
Integer
getPlatformId
(
String
platformName
)
{
for
(
WdtPlatformMappingEnum
enumValue
:
values
())
{
if
(
enumValue
.
platformName
.
equals
(
platformName
))
{
return
enumValue
.
platformId
;
}
}
return
null
;
}
/**
* 检查平台ID是否存在
* @param platformId 平台ID
* @return 是否存在
*/
public
static
boolean
exists
(
Integer
platformId
)
{
return
platformMap
.
containsKey
(
platformId
);
}
/**
* 获取所有平台映射关系
* @return 平台ID到平台名称的映射
*/
public
static
Map
<
Integer
,
String
>
getAllPlatforms
()
{
return
new
HashMap
<>(
platformMap
);
}
}
\ No newline at end of file
src/main/java/com/sfa/job/pojo/order/request/SyncStockoutRequest.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
order
.
request
;
import
java.util.Date
;
import
lombok.Data
;
@Data
public
class
SyncStockoutRequest
{
private
String
stockoutNo
;
// 出库单状态:5已取消, 10待放回(拣货待放回)小于该值的都是已取消的单子, 50待审核, 51缺货, 52缺货待入库,
// 53 WMS已接单, 54 获取电子面单, 58 档口锁定, 60 待分配, 61 排队中, 63 待补货, 65 待处理,
// 70 待发货, 73 爆款锁定, 74 预打包, 75 待拣货, 77 拣货中,PDA拣货后, 79 已拣货, 90 延时发货, 110已完成
private
String
status
=
"50,51,52,53,54,58,60,61,63,65,70,73,74,75,77,79,90,110"
;
private
Integer
statusType
=
3
;
private
Date
startTime
;
private
Date
endTime
;
// 同步类型:0 定时同步 1 手动同步
private
Integer
syncType
;
}
src/main/java/com/sfa/job/pojo/order/request/WdtSalesTradeQuery
Query
WithDetailVo.java
→
src/main/java/com/sfa/job/pojo/order/request/WdtSalesTradeQueryWithDetailVo.java
浏览文件 @
1b6f3a72
...
...
@@ -9,7 +9,7 @@ import com.taobao.api.internal.util.json.JSONWriter;
import
java.util.Map
;
public
class
WdtSalesTradeQuery
Query
WithDetailVo
extends
BaseTaobaoRequest
<
WdtSalesTradeQueryQueryWithDetailDto
>
{
public
class
WdtSalesTradeQueryWithDetailVo
extends
BaseTaobaoRequest
<
WdtSalesTradeQueryQueryWithDetailDto
>
{
private
String
datetime
;
private
String
pager
;
private
String
params
;
...
...
@@ -22,7 +22,7 @@ public class WdtSalesTradeQueryQueryWithDetailVo extends BaseTaobaoRequest<WdtSa
private
String
topApiVersion
=
"1.0"
;
private
String
topApiFormat
;
public
WdtSalesTradeQuery
Query
WithDetailVo
()
{
public
WdtSalesTradeQueryWithDetailVo
()
{
}
public
void
setDatetime
(
String
datetime
)
{
...
...
@@ -37,7 +37,7 @@ public class WdtSalesTradeQueryQueryWithDetailVo extends BaseTaobaoRequest<WdtSa
this
.
pager
=
pager
;
}
public
void
setPager
(
WdtSalesTradeQuery
Query
WithDetailVo
.
Pager
pager
)
{
public
void
setPager
(
WdtSalesTradeQueryWithDetailVo
.
Pager
pager
)
{
this
.
pager
=
(
new
JSONWriter
(
false
,
false
,
true
)).
write
(
pager
);
}
...
...
@@ -49,7 +49,7 @@ public class WdtSalesTradeQueryQueryWithDetailVo extends BaseTaobaoRequest<WdtSa
this
.
params
=
params
;
}
public
void
setParams
(
WdtSalesTradeQuery
Query
WithDetailVo
.
Params
params
)
{
public
void
setParams
(
WdtSalesTradeQueryWithDetailVo
.
Params
params
)
{
this
.
params
=
(
new
JSONWriter
(
false
,
false
,
true
)).
write
(
params
);
}
...
...
src/main/java/com/sfa/job/pojo/order/request/WdtStockoutSalesQueryWithDetailRequest.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
order
.
request
;
import
com.qimencloud.api.scene3ldsmu02o9.response.WdtWmsStockoutSalesQuerywithdetailResponse
;
import
com.sfa.job.pojo.order.response.WdtStockoutSalesQueryWithDetailDto
;
import
com.taobao.api.ApiRuleException
;
import
com.taobao.api.BaseTaobaoRequest
;
import
com.taobao.api.internal.mapping.ApiField
;
import
com.taobao.api.internal.util.TaobaoHashMap
;
import
com.taobao.api.internal.util.json.JSONWriter
;
import
java.util.Map
;
public
class
WdtStockoutSalesQueryWithDetailRequest
extends
BaseTaobaoRequest
<
WdtWmsStockoutSalesQuerywithdetailResponse
>
{
private
String
datetime
;
private
String
pager
;
private
String
params
;
private
String
wdtAppkey
;
private
String
wdtSalt
;
private
String
wdtSign
;
private
String
topContentType
;
private
String
topResponseType
=
"qimen1"
;
private
String
topApiVersion
=
"1.0"
;
private
String
topApiFormat
;
public
WdtStockoutSalesQueryWithDetailRequest
()
{
}
public
void
setDatetime
(
String
datetime
)
{
this
.
datetime
=
datetime
;
}
public
String
getDatetime
()
{
return
this
.
datetime
;
}
public
void
setPager
(
String
pager
)
{
this
.
pager
=
pager
;
}
public
void
setPager
(
Pager
pager
)
{
this
.
pager
=
(
new
JSONWriter
(
false
,
false
,
true
)).
write
(
pager
);
}
public
String
getPager
()
{
return
this
.
pager
;
}
public
void
setParams
(
String
params
)
{
this
.
params
=
params
;
}
public
void
setParams
(
Params
params
)
{
this
.
params
=
(
new
JSONWriter
(
false
,
false
,
true
)).
write
(
params
);
}
public
String
getParams
()
{
return
this
.
params
;
}
public
void
setWdtAppkey
(
String
wdtAppkey
)
{
this
.
wdtAppkey
=
wdtAppkey
;
}
public
String
getWdtAppkey
()
{
return
this
.
wdtAppkey
;
}
public
void
setWdtSalt
(
String
wdtSalt
)
{
this
.
wdtSalt
=
wdtSalt
;
}
public
String
getWdtSalt
()
{
return
this
.
wdtSalt
;
}
public
void
setWdtSign
(
String
wdtSign
)
{
this
.
wdtSign
=
wdtSign
;
}
public
String
getWdtSign
()
{
return
this
.
wdtSign
;
}
public
String
getApiMethodName
()
{
return
"wdt.wms.stockout.sales.querywithdetail"
;
}
public
String
getTopContentType
()
{
return
this
.
topContentType
;
}
public
void
setTopContentType
(
String
topContentType
)
{
this
.
topContentType
=
topContentType
;
}
public
String
getTopResponseType
()
{
return
this
.
topResponseType
;
}
public
void
setTopResponseType
(
String
topResponseType
)
{
this
.
topResponseType
=
topResponseType
;
}
public
String
getTopApiVersion
()
{
return
this
.
topApiVersion
;
}
public
void
setTopApiVersion
(
String
topApiVersion
)
{
this
.
topApiVersion
=
topApiVersion
;
}
public
String
getTopApiFormat
()
{
return
this
.
topApiFormat
;
}
public
void
setTopApiFormat
(
String
topApiFormat
)
{
this
.
topApiFormat
=
topApiFormat
;
}
public
Map
<
String
,
String
>
getTextParams
()
{
TaobaoHashMap
txtParams
=
new
TaobaoHashMap
();
txtParams
.
put
(
"datetime"
,
this
.
datetime
);
txtParams
.
put
(
"pager"
,
this
.
pager
);
txtParams
.
put
(
"params"
,
this
.
params
);
txtParams
.
put
(
"wdt_appkey"
,
this
.
wdtAppkey
);
txtParams
.
put
(
"wdt_salt"
,
this
.
wdtSalt
);
txtParams
.
put
(
"wdt_sign"
,
this
.
wdtSign
);
if
(
this
.
udfParams
!=
null
)
{
txtParams
.
putAll
(
this
.
udfParams
);
}
return
txtParams
;
}
public
Class
<
WdtWmsStockoutSalesQuerywithdetailResponse
>
getResponseClass
()
{
return
WdtWmsStockoutSalesQuerywithdetailResponse
.
class
;
}
public
void
check
()
throws
ApiRuleException
{
}
public
static
class
Pager
{
@ApiField
(
"page_no"
)
private
Long
pageNo
;
@ApiField
(
"page_size"
)
private
Long
pageSize
;
public
Pager
()
{
}
public
Long
getPageNo
()
{
return
this
.
pageNo
;
}
public
void
setPageNo
(
Long
pageNo
)
{
this
.
pageNo
=
pageNo
;
}
public
Long
getPageSize
()
{
return
this
.
pageSize
;
}
public
void
setPageSize
(
Long
pageSize
)
{
this
.
pageSize
=
pageSize
;
}
}
public
static
class
Params
{
@ApiField
(
"start_time"
)
private
String
startTime
;
@ApiField
(
"end_time"
)
private
String
endime
;
/**
* 出库单状态: 默认值为0
* 1.已取消
* 2.在企业版状态中对应status=55(已确认),这里为 待分配~延时发货(此条件会返回延时发货状态的订单)
* 3.按照指定的status状态字段查询
* 0.延时发货&已完成
*/
@ApiField
(
"status"
)
private
String
status
;
/**
* 传status_type=3情况下,按照修改时间和status查询
* (status_type=3的情况下,若不传status字段,按照发货时间查询)
* 出库单状态(若多个状态则以“,”隔开):
* 5已取消、10待放回(拣货待放回), 小于该值的都是已取消的单子
* 50待审核、 51缺货、52缺货待入库、53 WMS已接单
* 54 获取电子面单、58 档口锁定、60 待分配
* 61 排队中、63 待补货、65 待处理、 70 待发货、73 爆款锁定、74 预打包
* 75 待拣货、77 拣货中,PDA拣货后、 79 已拣货
* 90 延时发货、110已完成
*/
@ApiField
(
"status_type"
)
private
Integer
statusType
=
0
;
public
void
setStatusType
(
Integer
statusType
)
{
this
.
statusType
=
statusType
;
}
public
Integer
getStatusType
()
{
return
statusType
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
@ApiField
(
"stockout_no"
)
private
String
stockoutNo
;
public
String
getStockoutNo
()
{
return
stockoutNo
;
}
public
void
setStockoutNo
(
String
stockoutNo
)
{
this
.
stockoutNo
=
stockoutNo
;
}
public
String
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
String
startTime
)
{
this
.
startTime
=
startTime
;
}
public
String
getEndime
()
{
return
endime
;
}
public
void
setEndime
(
String
endime
)
{
this
.
endime
=
endime
;
}
}
}
src/main/java/com/sfa/job/pojo/order/response/WdtQimenStockoutBodyDto.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
order
.
response
;
import
lombok.Data
;
@Data
public
class
WdtQimenStockoutBodyDto
{
private
WdtQimenStockoutResponseDto
response
;
private
String
message
;
private
Integer
status
;
}
\ No newline at end of file
src/main/java/com/sfa/job/pojo/order/response/WdtQimenStockoutDataDto.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
order
.
response
;
import
lombok.Data
;
import
java.util.List
;
import
com.sfa.job.domain.order.entity.WdtQimenStockoutOrder
;
@Data
public
class
WdtQimenStockoutDataDto
{
private
List
<
WdtQimenStockoutOrder
>
order
;
private
Integer
totalCount
;
}
\ No newline at end of file
src/main/java/com/sfa/job/pojo/order/response/WdtQimenStockoutResponseDto.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
order
.
response
;
import
lombok.Data
;
@Data
public
class
WdtQimenStockoutResponseDto
{
private
WdtQimenStockoutDataDto
data
;
private
String
message
;
private
Integer
status
;
}
\ No newline at end of file
src/main/java/com/sfa/job/pojo/order/response/WdtStockoutSalesQueryWithDetailDto.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
order
.
response
;
import
com.alibaba.fastjson.JSONObject
;
import
com.taobao.api.TaobaoResponse
;
import
com.taobao.api.internal.mapping.ApiField
;
public
class
WdtStockoutSalesQueryWithDetailDto
extends
TaobaoResponse
{
private
static
final
long
serialVersionUID
=
4632382792982436957L
;
@ApiField
(
"data"
)
private
Object
data
;
@ApiField
(
"message"
)
private
String
message
;
@ApiField
(
"status"
)
private
Long
status
;
public
WdtStockoutSalesQueryWithDetailDto
()
{
}
public
void
setData
(
Object
data
)
{
this
.
data
=
JSONObject
.
toJSON
(
data
);
}
public
Object
getData
()
{
return
this
.
data
;
}
public
void
setMessage
(
String
message
)
{
this
.
message
=
message
;
}
public
String
getMessage
()
{
return
this
.
message
;
}
public
void
setStatus
(
Long
status
)
{
this
.
status
=
status
;
}
public
Long
getStatus
()
{
return
this
.
status
;
}
}
src/main/java/com/sfa/job/pojo/qince/request/QinceAllDealerQueryRequest.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
qince
.
request
;
import
lombok.Data
;
@Data
public
class
QinceAllDealerQueryRequest
{
private
Integer
pageSize
=
1000
;
}
src/main/java/com/sfa/job/pojo/qince/request/QinceDealerQueryRequest.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
qince
.
request
;
import
lombok.Data
;
@Data
public
class
QinceDealerQueryRequest
{
private
Integer
page
=
1
;
private
Integer
rows
=
1000
;
private
String
dealer_code
;
}
src/main/java/com/sfa/job/pojo/response/SyncOrderDetailDto.java
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
pojo
.
response
;
import
cn.hutool.core.date.DateUtil
;
import
io.swagger.v3.oas.models.security.SecurityScheme.In
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.sfa.common.core.utils.DateUtils
;
import
lombok.Data
;
...
...
@@ -31,22 +33,22 @@ public class SyncOrderDetailDto {
private
Integer
syncType
;
private
String
batchNo
;
private
Integer
pageNo
;
private
Integer
totalCount
;
/**
* 错误信息
*/
private
String
message
;
private
Integer
code
=
200
;
private
Integer
pageSize
;
private
Integer
totalPage
;
public
SyncOrderDetailDto
setDetailInfo
(
String
method
,
String
remark
,
int
syncType
,
int
size
,
int
mergerListSize
,
Integer
totalCount
,
String
batchNo
,
Date
endTime
,
Date
startTime
)
{
// 接口测试使用
this
.
setOrderCount
(
size
);
this
.
setOrderDetailCount
(
mergerListSize
);
public
SyncOrderDetailDto
setDetailInfo
(
String
method
,
String
remark
,
Integer
syncType
,
Integer
totalOrderCount
,
Integer
orderDetailCount
,
Integer
pageNo
,
String
batchNo
,
Date
endTime
,
Date
startTime
)
{
this
.
setOrderCount
(
totalOrderCount
);
this
.
setOrderDetailCount
(
orderDetailCount
);
this
.
setStartTime
(
startTime
);
this
.
setEndTime
(
endTime
);
this
.
setLatestTime
(
endTime
);
this
.
setTotalCount
(
totalCount
);
this
.
setBatchNo
(
batchNo
);
this
.
setMethod
(
method
);
this
.
setSyncType
(
syncType
);
...
...
@@ -58,13 +60,17 @@ public class SyncOrderDetailDto {
Date
currentLatest
=
DateUtils
.
addHours
(
new
Date
(),
-
2
);
if
(
currentLatest
.
compareTo
(
this
.
getEndTime
())
<
0
)
{
this
.
setTotalCount
(
0
);
String
message
=
String
.
format
(
"结束时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
this
.
getEndTime
()),
DateUtil
.
formatDateTime
(
currentLatest
));
String
message
=
String
.
format
(
"结束时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
this
.
getEndTime
()),
DateUtil
.
formatDateTime
(
currentLatest
));
this
.
setMessage
(
message
);
return
false
;
}
return
true
;
}
private
void
setTotalCount
(
Integer
orderCount
)
{
this
.
orderCount
=
orderCount
;
}
/**
* 初始化时间范围
...
...
@@ -92,4 +98,17 @@ public class SyncOrderDetailDto {
this
.
setLatestTime
(
latestTime
);
}
public
void
setDetailCount
(
Integer
totalDetailCount
)
{
this
.
orderDetailCount
=
totalDetailCount
;
}
public
void
setTotalPage
(
Integer
totalPage
)
{
this
.
totalPage
=
totalPage
;
}
public
void
setPageSize
(
Integer
pageSize
)
{
this
.
pageSize
=
pageSize
;
}
}
src/main/java/com/sfa/job/service/order/IWdtQimenStockoutOrderSyncService.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
service
.
order
;
import
java.util.Date
;
import
com.sfa.job.pojo.order.request.SyncStockoutRequest
;
import
com.sfa.job.pojo.order.response.WdtStockoutSalesQueryWithDetailDto
;
import
com.sfa.job.pojo.response.SyncOrderDetailDto
;
/**
* 销售出库单同步服务
*/
public
interface
IWdtQimenStockoutOrderSyncService
{
/**
* 同步销售出库单
* @param startTime 开始时间
* @param endTime 结束时间
* @param shopNo 店铺编号
* @return 同步结果
*/
SyncOrderDetailDto
syncStockoutOrder
(
SyncStockoutRequest
syncStockoutRequest
,
Integer
pageSize
);
/**
* 同步单个销售出库单
* @param stockoutNo 出库单编号
* @return 同步结果
*/
WdtStockoutSalesQueryWithDetailDto
syncSingleStockoutOrder
(
String
stockoutNo
);
}
src/main/java/com/sfa/job/service/order/impl/FinanceOrderSyncServiceImpl.java
浏览文件 @
1b6f3a72
...
...
@@ -408,7 +408,7 @@ public class FinanceOrderSyncServiceImpl implements IFinanceOrderSyncService {
private
boolean
validateStartTime
(
SyncOrderDetailDto
detailDto
)
{
Date
currentLatest
=
DateUtils
.
addHours
(
new
Date
(),
-
2
);
if
(
currentLatest
.
compareTo
(
detailDto
.
getEndTime
())
<
0
)
{
detailDto
.
set
Total
Count
(
0
);
detailDto
.
set
Order
Count
(
0
);
String
message
=
String
.
format
(
"结束时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
detailDto
.
getEndTime
()),
DateUtil
.
formatDateTime
(
currentLatest
));
detailDto
.
setMessage
(
message
);
log
.
warn
(
message
);
...
...
src/main/java/com/sfa/job/service/order/impl/WdtQimenOrderPayTimeSyncServiceImpl.java
浏览文件 @
1b6f3a72
...
...
@@ -5,7 +5,6 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.http.HttpStatus
;
import
cn.hutool.json.JSONUtil
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.qimencloud.api.DefaultQimenCloudClient
;
import
com.qimencloud.api.QimenCloudClient
;
import
com.sfa.common.core.exception.ServiceException
;
...
...
@@ -15,7 +14,7 @@ import com.sfa.job.domain.order.dao.*;
import
com.sfa.job.domain.order.entity.FinanceBaseProduct
;
import
com.sfa.job.domain.order.entity.WdtQimenOrderDetailPayTime
;
import
com.sfa.job.domain.order.entity.WdtQimenOrderPayTime
;
import
com.sfa.job.pojo.order.request.WdtSalesTradeQuery
Query
WithDetailVo
;
import
com.sfa.job.pojo.order.request.WdtSalesTradeQueryWithDetailVo
;
import
com.sfa.job.pojo.order.response.*
;
import
com.sfa.job.pojo.response.CollectOrderLogDto
;
import
com.sfa.job.pojo.response.SyncOrderDetailDto
;
...
...
@@ -62,7 +61,7 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
// @Transactional(rollbackFor = Exception.class)
@Override
public
SyncOrderDetailDto
syncWdtQimenOrderByTradeNo
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
String
tradeNo
,
Long
pageNo
,
Long
pageSize
)
{
WdtSalesTradeQuery
QueryWithDetailVo
request
=
new
WdtSalesTradeQuery
QueryWithDetailVo
();
WdtSalesTradeQuery
WithDetailVo
request
=
new
WdtSalesTrade
QueryWithDetailVo
();
String
method
=
request
.
getApiMethodName
();
String
serverUrl
=
wdtQimenConfig
.
getServerUrl
();
String
appKey
=
wdtQimenConfig
.
getAppKey
();
...
...
@@ -82,7 +81,7 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
// 查询只到数据查询完毕
QimenCloudClient
client
=
new
DefaultQimenCloudClient
(
serverUrl
,
appKey
,
appSecret
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
params
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
();
WdtSalesTradeQuery
WithDetailVo
.
Params
params
=
new
WdtSalesTrade
QueryWithDetailVo
.
Params
();
params
.
setStartTime
(
DateUtil
.
formatDateTime
(
startTime
));
params
.
setEndime
(
DateUtil
.
formatDateTime
(
endTime
));
// 旺店通的页码从0开始,奇门从1开始 时间类型 1:修改时间 2:付款时间 默认1
...
...
@@ -90,7 +89,7 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
params
.
setTradeNo
(
tradeNo
);
request
.
setParams
(
params
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
pager
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
();
WdtSalesTradeQuery
WithDetailVo
.
Pager
pager
=
new
WdtSalesTrade
QueryWithDetailVo
.
Pager
();
pager
.
setPageNo
(
pageNo
);
pager
.
setPageSize
(
pageSize
);
request
.
setPager
(
pager
);
...
...
@@ -135,7 +134,7 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
public
SyncOrderDetailDto
syncWdtQimenOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
Long
pageSize
)
{
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
String
batchNo
=
syncType
+
DateUtils
.
dateTimeNow
()
+
Thread
.
currentThread
().
getId
();
WdtSalesTradeQuery
QueryWithDetailVo
request
=
new
WdtSalesTradeQuery
QueryWithDetailVo
();
WdtSalesTradeQuery
WithDetailVo
request
=
new
WdtSalesTrade
QueryWithDetailVo
();
String
method
=
request
.
getApiMethodName
();
List
<
WdtQimenOrderPayTime
>
orderResult
=
new
ArrayList
<>();
try
{
...
...
@@ -181,14 +180,14 @@ public class WdtQimenOrderPayTimeSyncServiceImpl implements IWdtQimenOrderPayTim
do
{
// 查询只到数据查询完毕
QimenCloudClient
client
=
new
DefaultQimenCloudClient
(
serverUrl
,
appKey
,
appSecret
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
params
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
();
WdtSalesTradeQuery
WithDetailVo
.
Params
params
=
new
WdtSalesTrade
QueryWithDetailVo
.
Params
();
params
.
setStartTime
(
DateUtil
.
formatDateTime
(
startTime
));
params
.
setEndime
(
DateUtil
.
formatDateTime
(
endTime
));
// 旺店通的页码从0开始,奇门从1开始 时间类型 1:修改时间 2:付款时间 默认1
params
.
setTimeType
(
2
);
request
.
setParams
(
params
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
pager
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
();
WdtSalesTradeQuery
WithDetailVo
.
Pager
pager
=
new
WdtSalesTrade
QueryWithDetailVo
.
Pager
();
pager
.
setPageNo
(
pageNo
);
pager
.
setPageSize
(
pageSize
);
request
.
setPager
(
pager
);
...
...
src/main/java/com/sfa/job/service/order/impl/WdtQimenOrderSyncServiceImpl.java
浏览文件 @
1b6f3a72
...
...
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import
cn.hutool.core.util.URLUtil
;
import
cn.hutool.http.HttpStatus
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.TypeReference
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.qimencloud.api.DefaultQimenCloudClient
;
import
com.qimencloud.api.QimenCloudClient
;
...
...
@@ -14,7 +15,7 @@ import com.sfa.job.domain.order.dao.*;
import
com.sfa.job.domain.order.entity.FinanceBaseProduct
;
import
com.sfa.job.domain.order.entity.WdtQimenOrder
;
import
com.sfa.job.domain.order.entity.WdtQimenOrderDetail
;
import
com.sfa.job.pojo.order.request.WdtSalesTradeQuery
Query
WithDetailVo
;
import
com.sfa.job.pojo.order.request.WdtSalesTradeQueryWithDetailVo
;
import
com.sfa.job.pojo.order.response.WdtQimenBodyDto
;
import
com.sfa.job.pojo.order.response.WdtQimenDataDto
;
import
com.sfa.job.pojo.order.response.WdtQimenResponseDto
;
...
...
@@ -32,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 旺店通订单Service业务层处理
...
...
@@ -65,7 +67,7 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
SyncOrderDetailDto
syncWdtQimenOrderByTradeNo
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
String
tradeNo
,
Long
pageNo
,
Long
pageSize
)
{
WdtSalesTradeQuery
QueryWithDetailVo
request
=
new
WdtSalesTradeQuery
QueryWithDetailVo
();
WdtSalesTradeQuery
WithDetailVo
request
=
new
WdtSalesTrade
QueryWithDetailVo
();
String
method
=
request
.
getApiMethodName
();
String
serverUrl
=
wdtQimenConfig
.
getServerUrl
();
String
appKey
=
wdtQimenConfig
.
getAppKey
();
...
...
@@ -80,12 +82,10 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
String
wdtSid
=
wdtQimenConfig
.
getWdtSid
();
Long
totalPage
=
1L
;
Integer
totalCount
=
1
;
// 查询只到数据查询完毕
QimenCloudClient
client
=
new
DefaultQimenCloudClient
(
serverUrl
,
appKey
,
appSecret
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
params
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
();
WdtSalesTradeQuery
WithDetailVo
.
Params
params
=
new
WdtSalesTrade
QueryWithDetailVo
.
Params
();
params
.
setStartTime
(
DateUtil
.
formatDateTime
(
startTime
));
params
.
setEndime
(
DateUtil
.
formatDateTime
(
endTime
));
// 旺店通的页码从0开始,奇门从1开始 时间类型 1:修改时间 2:付款时间 默认1
...
...
@@ -93,7 +93,7 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
params
.
setTradeNo
(
tradeNo
);
request
.
setParams
(
params
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
pager
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
();
WdtSalesTradeQuery
WithDetailVo
.
Pager
pager
=
new
WdtSalesTrade
QueryWithDetailVo
.
Pager
();
pager
.
setPageNo
(
pageNo
);
pager
.
setPageSize
(
pageSize
);
request
.
setPager
(
pager
);
...
...
@@ -112,6 +112,7 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
response
=
client
.
execute
(
request
);
log
.
info
(
response
.
getBody
());
}
catch
(
ApiException
e
)
{
log
.
error
(
"奇门订单加载数据异常:"
+
e
.
getMessage
()
+
URLUtil
.
decode
(
response
.
getRequestUrl
()));
throw
new
RuntimeException
(
e
);
}
if
(
ObjectUtils
.
isNotEmpty
(
response
)
&&
response
.
getFlag
().
equals
(
"failure"
))
{
...
...
@@ -138,7 +139,7 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
public
SyncOrderDetailDto
syncWdtQimenOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
,
Long
pageSize
)
{
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
String
batchNo
=
syncType
+
DateUtils
.
dateTimeNow
()
+
Thread
.
currentThread
().
getId
();
WdtSalesTradeQuery
QueryWithDetailVo
request
=
new
WdtSalesTradeQuery
QueryWithDetailVo
();
WdtSalesTradeQuery
WithDetailVo
request
=
new
WdtSalesTrade
QueryWithDetailVo
();
String
method
=
request
.
getApiMethodName
();
List
<
WdtQimenOrder
>
orderResult
=
new
ArrayList
<>();
try
{
...
...
@@ -184,14 +185,14 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
do
{
// 查询只到数据查询完毕
QimenCloudClient
client
=
new
DefaultQimenCloudClient
(
serverUrl
,
appKey
,
appSecret
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
params
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Params
();
WdtSalesTradeQuery
WithDetailVo
.
Params
params
=
new
WdtSalesTrade
QueryWithDetailVo
.
Params
();
params
.
setStartTime
(
DateUtil
.
formatDateTime
(
startTime
));
params
.
setEndime
(
DateUtil
.
formatDateTime
(
endTime
));
// 旺店通的页码从0开始,奇门从1开始
params
.
setTimeType
(
1
);
request
.
setParams
(
params
);
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
pager
=
new
WdtSalesTradeQuery
QueryWithDetailVo
.
Pager
();
WdtSalesTradeQuery
WithDetailVo
.
Pager
pager
=
new
WdtSalesTrade
QueryWithDetailVo
.
Pager
();
pager
.
setPageNo
(
pageNo
);
pager
.
setPageSize
(
pageSize
);
request
.
setPager
(
pager
);
...
...
@@ -223,10 +224,15 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
if
(
ObjectUtils
.
isEmpty
(
orderSubResult
))
{
log
.
warn
(
"当前查询没有数据,奇门加载数据异常:"
+
response
.
getMessage
()
+
response
.
getSubMessage
()
+
URLUtil
.
decode
(
response
.
getRequestUrl
()));
// throw new ServiceException("旺店通没有查询到订单数据");
}
else
{
// 将当前页的订单添加到总结果列表中
List
<
WdtQimenOrder
>
typedOrderSubResult
=
orderSubResult
.
stream
()
.
map
(
obj
->
obj
)
.
collect
(
Collectors
.
toList
());
orderResult
.
addAll
(
typedOrderSubResult
);
}
orderResult
.
addAll
(
orderSubResult
);
pageNo
++;
}
while
(
pageNo
<=
totalPage
);
}
while
(
pageNo
<=
(
totalPage
-
1
)
);
// 基础数据 直播间分类数据+成本、规格、口味
...
...
@@ -342,4 +348,4 @@ public class WdtQimenOrderSyncServiceImpl implements IWdtQimenOrderSyncService {
}
}
}
\ No newline at end of file
src/main/java/com/sfa/job/service/order/impl/WdtQimenStockoutOrderSyncServiceImpl.java
0 → 100644
浏览文件 @
1b6f3a72
差异被折叠。
点击展开。
src/main/java/com/sfa/job/service/qince/IQinceDealerQueryService.java
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
service
.
qince
;
import
com.alibaba.fastjson.JSONArray
;
import
com.sfa.job.pojo.qince.request.QinceAllDealerQueryRequest
;
import
com.sfa.job.pojo.qince.request.QinceDealerQueryRequest
;
/**
* @author : liqiulin
* @date : 2025-04-24 16
...
...
@@ -10,4 +14,7 @@ public interface IQinceDealerQueryService {
void
queryCusVisitRecord
();
void
updateQinceStore
();
JSONArray
queryDealer
(
QinceDealerQueryRequest
request
);
JSONArray
queryAllDealer
(
QinceAllDealerQueryRequest
request
);
}
src/main/java/com/sfa/job/service/qince/IQinceUserStatisticService.java
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
service
.
qince
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
/**
...
...
src/main/java/com/sfa/job/service/qince/impl/QinceDealerQueryServiceImpl.java
浏览文件 @
1b6f3a72
...
...
@@ -2,10 +2,13 @@ package com.sfa.job.service.qince.impl;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.sfa.job.domain.feishu.dao.IQinceMarketEmployeeDao
;
import
com.sfa.job.domain.qince.dao.IQinceClienteleStoreDao
;
import
com.sfa.job.pojo.feishu.response.QinceMarketEmployeeDto
;
import
com.sfa.job.pojo.qince.request.QinceAllDealerQueryRequest
;
import
com.sfa.job.pojo.qince.request.QinceDealerQueryRequest
;
import
com.sfa.job.pojo.qince.response.QinceClienteleStoreDto
;
import
com.sfa.job.service.qince.IQinceDealerQueryService
;
import
com.sfa.job.util.QinCeUtils
;
...
...
@@ -146,4 +149,34 @@ public class QinceDealerQueryServiceImpl implements IQinceDealerQueryService {
}
}
}
@Override
public
JSONArray
queryDealer
(
QinceDealerQueryRequest
request
)
{
log
.
info
(
"查询经销商列表,request:{}"
,
request
);
try
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"page"
,
request
.
getPage
()
!=
null
?
request
.
getPage
()
:
1
);
params
.
put
(
"rows"
,
request
.
getRows
()
!=
null
?
request
.
getRows
()
:
1000
);
params
.
put
(
"dealer_code"
,
request
.
getDealer_code
());
if
(
request
.
getDealer_code
()
!=
null
&&
!
request
.
getDealer_code
().
isEmpty
())
{
params
.
put
(
"dealer_code"
,
request
.
getDealer_code
());
}
return
qinCeUtils
.
queryDealer
(
params
);
}
catch
(
Exception
e
)
{
log
.
error
(
"查询经销商列表异常:{}"
,
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"查询经销商列表异常:"
+
e
.
getMessage
(),
e
);
}
}
@Override
public
JSONArray
queryAllDealer
(
QinceAllDealerQueryRequest
request
)
{
log
.
info
(
"查询所有经销商,request:{}"
,
request
);
try
{
return
qinCeUtils
.
queryAllDealer
(
request
.
getPageSize
());
}
catch
(
Exception
e
)
{
log
.
error
(
"查询所有经销商异常:{}"
,
e
.
getMessage
(),
e
);
throw
new
RuntimeException
(
"查询所有经销商异常:"
+
e
.
getMessage
(),
e
);
}
}
}
src/main/java/com/sfa/job/util/QinCeUtils.java
浏览文件 @
1b6f3a72
...
...
@@ -62,7 +62,58 @@ public class QinCeUtils {
// 直营订单查询接口
public
static
final
String
QUERY_ORDER_DETAIL
=
"/api/dmsdatasearch/v1/getDmsPurchaseOrderInfos/"
;
// 查询经销商
public
static
final
String
QUERY_DEALER
=
"/api/dealer/v1/queryDealer/"
;
/**
* 调用勤策查询经销商接口
* @param params 查询参数Map
* @return 经销商数据JSON数组
* @throws Exception 接口调用异常
*/
public
JSONArray
queryDealer
(
Map
<
String
,
Object
>
params
)
throws
Exception
{
String
url
=
builderUrl
(
QUERY_DEALER
,
params
);
log
.
info
(
"调用勤策查询经销商接口,URL:{},参数:{}"
,
url
,
params
);
return
postArray
(
url
,
params
);
}
/**
* 分页查询所有经销商(循环拉取直到无数据)
* @param pageSize 每页记录数(默认1000)
* @return 所有经销商数据
* @throws Exception 接口调用异常
*/
public
JSONArray
queryAllDealer
(
Integer
pageSize
)
throws
Exception
{
JSONArray
allDealers
=
new
JSONArray
();
int
currentPage
=
1
;
int
pageSizeValue
=
pageSize
!=
null
?
pageSize
:
1000
;
while
(
true
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"page"
,
currentPage
);
params
.
put
(
"rows"
,
pageSizeValue
);
String
url
=
builderUrl
(
QUERY_DEALER
,
params
);
log
.
info
(
"查询经销商 - 第{}页,请求URL:{}"
,
currentPage
,
url
);
try
{
JSONObject
resp
=
postQC
(
url
,
params
);
JSONArray
pageData
=
resp
.
getJSONArray
(
"response_data"
);
if
(
pageData
==
null
||
pageData
.
isEmpty
())
{
log
.
info
(
"经销商查询完成,共拉取{}页,总记录数:{}"
,
currentPage
-
1
,
allDealers
.
size
());
break
;
}
allDealers
.
addAll
(
pageData
);
currentPage
++;
}
catch
(
Exception
e
)
{
log
.
error
(
"查询经销商第{}页失败"
,
currentPage
,
e
);
throw
new
RuntimeException
(
"分页拉取经销商数据失败,页码:"
+
currentPage
,
e
);
}
}
return
allDealers
;
}
public
String
builderUrl
(
String
sidepath
,
Map
<
String
,
Object
>
params
)
{
String
msgId
=
UUID
.
randomUUID
().
toString
();
...
...
src/main/java/com/sfa/job/util/WdtQimenUtil.java
浏览文件 @
1b6f3a72
...
...
@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
import
com.taobao.api.BaseTaobaoRequest
;
import
com.taobao.api.TaobaoResponse
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.math.BigDecimal
;
import
java.util.Arrays
;
...
...
@@ -15,6 +17,8 @@ import java.util.Map;
* 奇门自定义接口工具类
*/
public
class
WdtQimenUtil
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
WdtQimenUtil
.
class
);
private
WdtQimenUtil
()
{
}
...
...
@@ -36,7 +40,10 @@ public class WdtQimenUtil {
StringBuilder
toBeSignedStringBuilder
=
new
StringBuilder
();
getToBeSignedString
(
toBeSignedStringBuilder
,
params
);
toBeSignedStringBuilder
.
insert
(
0
,
wdtSecret
).
append
(
wdtSecret
);
return
DigestUtils
.
md5Hex
(
toBeSignedStringBuilder
.
toString
());
String
signStr
=
toBeSignedStringBuilder
.
toString
();
String
sign
=
DigestUtils
.
md5Hex
(
signStr
);
log
.
debug
(
"生成签名 - 方法: {}, 签名字符串长度: {}, 签名值: {}"
,
request
.
getApiMethodName
(),
signStr
.
length
(),
sign
);
return
sign
;
}
public
static
boolean
isValidJson
(
String
content
)
{
...
...
src/main/java/com/sfa/job/xxljob/order/WdtQimenStockoutOrderTask.java
0 → 100644
浏览文件 @
1b6f3a72
package
com
.
sfa
.
job
.
xxljob
.
order
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.http.HttpStatus
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.sfa.job.pojo.order.request.SyncStockoutRequest
;
import
com.sfa.job.pojo.response.SyncOrderDetailDto
;
import
com.sfa.job.service.order.IWdtQimenStockoutOrderSyncService
;
import
com.xxl.job.core.context.XxlJobContext
;
import
com.xxl.job.core.context.XxlJobHelper
;
import
com.xxl.job.core.handler.annotation.XxlJob
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
/**
* @author : 吕本才
* @date : 2025年08月14日
* @describe : 旺店通奇门订单数据
*/
@Component
@Slf4j
public
class
WdtQimenStockoutOrderTask
{
@Autowired
IWdtQimenStockoutOrderSyncService
stockoutOrderSyncService
;
/**
* 同步财务订单数据
*/
@XxlJob
(
"syncStockoutOrder"
)
public
SyncOrderDetailDto
syncStockoutOrder
()
{
Long
st
=
System
.
currentTimeMillis
();
// 暂不考虑分片
XxlJobContext
xxlJobContext
=
XxlJobContext
.
getXxlJobContext
();
int
shardingTotalCount
=
xxlJobContext
.
getShardTotal
();
int
shardingItem
=
xxlJobContext
.
getShardIndex
();
XxlJobHelper
.
log
(
">>>>>>>>>>syncWangdiantongOrderDetail Job start<<<<<<<<<<"
);
String
jobParam
=
xxlJobContext
.
getJobParam
();
boolean
jsonFlag
=
JSONUtil
.
isJson
(
jobParam
);
Date
startTime
=
null
;
Date
endTime
=
null
;
String
status
=
null
;
Integer
statusType
=
null
;
SyncStockoutRequest
syncStockoutRequest
=
new
SyncStockoutRequest
();
// 同步类型 ,接口为1手动同步,0 xxljob自动同步
syncStockoutRequest
.
setSyncType
(
0
);
if
(
jsonFlag
)
{
JSONObject
jobParamJson
=
JSONObject
.
parseObject
(
jobParam
);
startTime
=
jobParamJson
.
getDate
(
"startTime"
);
endTime
=
jobParamJson
.
getDate
(
"endTime"
);
status
=
jobParamJson
.
getString
(
"status"
);
statusType
=
jobParamJson
.
getInteger
(
"statusType"
);
syncStockoutRequest
.
setStatus
(
status
);
syncStockoutRequest
.
setStatusType
(
statusType
);
syncStockoutRequest
.
setStartTime
(
startTime
);
syncStockoutRequest
.
setEndTime
(
endTime
);
}
// 简单模拟分片处理,这里输出每个分片的信息
XxlJobHelper
.
log
(
"分片总数: "
+
shardingTotalCount
+
", 当前分片: "
+
shardingItem
);
XxlJobHelper
.
log
(
"xxl-job开始同步-旺店通订单明细api接口数据"
);
// 定时任务不设定开始时间和结束时间
SyncOrderDetailDto
detailDto
=
stockoutOrderSyncService
.
syncStockoutOrder
(
syncStockoutRequest
,
200
);
XxlJobHelper
.
log
(
"xxl-job结束同步-旺店通订单明细api接口数据, 共同步订单{}条数据,订单明细{}条,订单批次号:{},订单的开始时间{}和结束时间{}"
,
detailDto
.
getOrderCount
(),
detailDto
.
getOrderDetailCount
(),
detailDto
.
getBatchNo
(),
DateUtil
.
formatDateTime
(
detailDto
.
getStartTime
()),
DateUtil
.
formatDateTime
(
detailDto
.
getEndTime
()));
if
(
ObjectUtil
.
equals
(
HttpStatus
.
HTTP_OK
,
detailDto
.
getCode
()))
{
XxlJobHelper
.
handleSuccess
(
JSONObject
.
toJSONString
(
detailDto
));
}
else
{
XxlJobHelper
.
handleFail
(
detailDto
.
getMessage
());
}
return
detailDto
;
}
}
src/main/resources/mapper/order/WdtQimenStockOutPickPositionDetailMapper.xml
0 → 100644
浏览文件 @
1b6f3a72
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtQimenStockOutPickPositionDetailMapper"
>
<!-- 批量插入或更新拣货位明细 -->
<insert
id=
"insertOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_qimen_stockout_pick_position_detail (
rec_id,
stockout_detail_id,
position_id,
position_no,
expire_date,
production_date,
batch_no,
position_goods_count,
spec_no,
create_time,
update_time
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.recId},
#{item.stockoutDetailId},
#{item.positionId},
#{item.positionNo},
#{item.expireDate},
#{item.productionDate},
#{item.batchNo},
#{item.positionGoodsCount},
#{item.specNo},
#{item.createTime},
#{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
stockout_detail_id = VALUES(stockout_detail_id),
position_id = VALUES(position_id),
position_no = VALUES(position_no),
expire_date = VALUES(expire_date),
production_date = VALUES(production_date),
batch_no = VALUES(batch_no),
position_goods_count = VALUES(position_goods_count),
spec_no = VALUES(spec_no),
update_time = VALUES(update_time)
</insert>
</mapper>
src/main/resources/mapper/order/WdtQimenStockoutGovSubsidyMapper.xml
0 → 100644
浏览文件 @
1b6f3a72
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtQimenStockoutGovSubsidyMapper"
>
<!-- 批量插入或更新国补信息 -->
<insert
id=
"insertOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_qimen_stockout_gov_subsidy (
id,
stockout_no,
subsidy_amount,
subsidy_type,
subsidy_reason,
create_time,
update_time,
create_by,
update_by,
del_flag
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.id},
#{item.stockoutNo},
#{item.subsidyAmount},
#{item.subsidyType},
#{item.subsidyReason},
#{item.createTime},
#{item.updateTime},
#{item.createBy},
#{item.updateBy},
#{item.delFlag}
)
</foreach>
ON DUPLICATE KEY UPDATE
subsidy_amount = VALUES(subsidy_amount),
subsidy_type = VALUES(subsidy_type),
subsidy_reason = VALUES(subsidy_reason),
update_time = VALUES(update_time),
update_by = VALUES(update_by)
</insert>
</mapper>
src/main/resources/mapper/order/WdtQimenStockoutLogisticsDetailMapper.xml
0 → 100644
浏览文件 @
1b6f3a72
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtQimenStockoutLogisticsDetailMapper"
>
<!-- 批量插入或更新物流单详情 -->
<insert
id=
"insertOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_qimen_stockout_logistics_detail (
rec_id,
stockout_detail_id,
position_id,
position_no,
expire_date,
production_date,
batch_no,
position_goods_count,
batch_remark,
create_time,
update_time
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.recId},
#{item.stockoutDetailId},
#{item.positionId},
#{item.positionNo},
#{item.expireDate},
#{item.productionDate},
#{item.batchNo},
#{item.positionGoodsCount},
#{item.batchRemark},
#{item.createTime},
#{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
stockout_detail_id = VALUES(stockout_detail_id),
position_id = VALUES(position_id),
position_no = VALUES(position_no),
expire_date = VALUES(expire_date),
production_date = VALUES(production_date),
batch_no = VALUES(batch_no),
position_goods_count = VALUES(position_goods_count),
batch_remark = VALUES(batch_remark),
update_time = VALUES(update_time)
</insert>
</mapper>
src/main/resources/mapper/order/WdtQimenStockoutOrderDetailMapper.xml
0 → 100644
浏览文件 @
1b6f3a72
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtQimenStockoutOrderDetailMapper"
>
<!-- 批量插入或更新销售出库单明细 -->
<insert
id=
"insertOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_qimen_stockout_order_detail (
rec_id,
stockout_id,
stockout_no,
src_order_detail_id,
spec_id,
spec_no,
goods_count,
total_amount,
sell_price,
remark,
goods_name,
goods_no,
spec_name,
spec_code,
cost_price,
weight,
goods_id,
prop1,
prop2,
prop3,
prop4,
prop5,
prop6,
platform_id,
refund_status,
market_price,
discount,
share_price,
share_amount,
tax_rate,
barcode,
unit_name,
sale_order_id,
gift_type,
src_oid,
src_tid,
from_mask,
goods_type,
good_prop1,
good_prop2,
good_prop3,
good_prop4,
good_prop5,
good_prop6,
sn_list,
suite_no,
suite_num,
share_post_amount,
paid,
is_package,
brand_no,
brand_name,
src_order_type,
base_unit_id,
unit_id,
unit_ratio,
num2,
num,
position_id,
batch_id,
is_examined,
expire_date,
scan_type,
modified_date,
created_date,
class_name,
api_goods_id,
api_spec_id,
pack_score,
pick_score,
scan_score,
api_goods_name,
batch_remark,
fenxiao_nick,
fenxiao_id,
fenxiao_name,
actual_cost,
standard_cost,
sum_actual_cost,
sum_standard_cost,
create_by,
create_user_id,
update_by,
update_user_id,
del_flag,
create_time,
update_time
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.recId},
#{item.stockoutId},
#{item.stockoutNo},
#{item.srcOrderDetailId},
#{item.specId},
#{item.specNo},
#{item.goodsCount},
#{item.totalAmount},
#{item.sellPrice},
#{item.remark},
#{item.goodsName},
#{item.goodsNo},
#{item.specName},
#{item.specCode},
#{item.costPrice},
#{item.weight},
#{item.goodsId},
#{item.prop1},
#{item.prop2},
#{item.prop3},
#{item.prop4},
#{item.prop5},
#{item.prop6},
#{item.platformId},
#{item.refundStatus},
#{item.marketPrice},
#{item.discount},
#{item.sharePrice},
#{item.shareAmount},
#{item.taxRate},
#{item.barcode},
#{item.unitName},
#{item.saleOrderId},
#{item.giftType},
#{item.srcOid},
#{item.srcTid},
#{item.fromMask},
#{item.goodsType},
#{item.goodProp1},
#{item.goodProp2},
#{item.goodProp3},
#{item.goodProp4},
#{item.goodProp5},
#{item.goodProp6},
#{item.snList},
#{item.suiteNo},
#{item.suiteNum},
#{item.sharePostAmount},
#{item.paid},
#{item.isPackage},
#{item.brandNo},
#{item.brandName},
#{item.srcOrderType},
#{item.baseUnitId},
#{item.unitId},
#{item.unitRatio},
#{item.num2},
#{item.num},
#{item.positionId},
#{item.batchId},
#{item.isExamined},
#{item.expireDate},
#{item.scanType},
#{item.modifiedDate},
#{item.createdDate},
#{item.className},
#{item.apiGoodsId},
#{item.apiSpecId},
#{item.packScore},
#{item.pickScore},
#{item.scanScore},
#{item.apiGoodsName},
#{item.batchRemark},
#{item.fenxiaoNick},
#{item.fenxiaoId},
#{item.fenxiaoName},
#{item.actualCost},
#{item.standardCost},
#{item.sumActualCost},
#{item.sumStandardCost},
#{item.createBy},
#{item.createUserId},
#{item.updateBy},
#{item.updateUserId},
#{item.delFlag},
#{item.createTime},
#{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
stockout_id = VALUES(stockout_id),
src_order_detail_id = VALUES(src_order_detail_id),
spec_id = VALUES(spec_id),
spec_no = VALUES(spec_no),
goods_count = VALUES(goods_count),
total_amount = VALUES(total_amount),
sell_price = VALUES(sell_price),
remark = VALUES(remark),
goods_name = VALUES(goods_name),
goods_no = VALUES(goods_no),
spec_name = VALUES(spec_name),
spec_code = VALUES(spec_code),
cost_price = VALUES(cost_price),
weight = VALUES(weight),
goods_id = VALUES(goods_id),
prop1 = VALUES(prop1),
prop2 = VALUES(prop2),
prop3 = VALUES(prop3),
prop4 = VALUES(prop4),
prop5 = VALUES(prop5),
prop6 = VALUES(prop6),
platform_id = VALUES(platform_id),
refund_status = VALUES(refund_status),
market_price = VALUES(market_price),
discount = VALUES(discount),
share_price = VALUES(share_price),
share_amount = VALUES(share_amount),
tax_rate = VALUES(tax_rate),
barcode = VALUES(barcode),
unit_name = VALUES(unit_name),
sale_order_id = VALUES(sale_order_id),
gift_type = VALUES(gift_type),
src_oid = VALUES(src_oid),
src_tid = VALUES(src_tid),
from_mask = VALUES(from_mask),
goods_type = VALUES(goods_type),
good_prop1 = VALUES(good_prop1),
good_prop2 = VALUES(good_prop2),
good_prop3 = VALUES(good_prop3),
good_prop4 = VALUES(good_prop4),
good_prop5 = VALUES(good_prop5),
good_prop6 = VALUES(good_prop6),
sn_list = VALUES(sn_list),
suite_no = VALUES(suite_no),
suite_num = VALUES(suite_num),
share_post_amount = VALUES(share_post_amount),
paid = VALUES(paid),
is_package = VALUES(is_package),
brand_no = VALUES(brand_no),
brand_name = VALUES(brand_name),
src_order_type = VALUES(src_order_type),
base_unit_id = VALUES(base_unit_id),
unit_id = VALUES(unit_id),
unit_ratio = VALUES(unit_ratio),
num2 = VALUES(num2),
num = VALUES(num),
position_id = VALUES(position_id),
batch_id = VALUES(batch_id),
is_examined = VALUES(is_examined),
expire_date = VALUES(expire_date),
scan_type = VALUES(scan_type),
modified_date = VALUES(modified_date),
created_date = VALUES(created_date),
class_name = VALUES(class_name),
api_goods_id = VALUES(api_goods_id),
api_spec_id = VALUES(api_spec_id),
pack_score = VALUES(pack_score),
pick_score = VALUES(pick_score),
scan_score = VALUES(scan_score),
api_goods_name = VALUES(api_goods_name),
batch_remark = VALUES(batch_remark),
fenxiao_nick = VALUES(fenxiao_nick),
fenxiao_id = VALUES(fenxiao_id),
fenxiao_name = VALUES(fenxiao_name),
actual_cost = VALUES(actual_cost),
standard_cost = VALUES(standard_cost),
sum_actual_cost = VALUES(sum_actual_cost),
sum_standard_cost = VALUES(sum_standard_cost),
update_by = VALUES(update_by),
update_user_id = VALUES(update_user_id),
update_time = VALUES(update_time)
</insert>
</mapper>
src/main/resources/mapper/order/WdtQimenStockoutOrderMapper.xml
0 → 100644
浏览文件 @
1b6f3a72
差异被折叠。
点击展开。
src/main/resources/mapper/order/WdtQimenStockoutPositionDetailMapper.xml
0 → 100644
浏览文件 @
1b6f3a72
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtQimenStockoutPositionDetailMapper"
>
<!-- 批量插入或更新出库货位明细 -->
<insert
id=
"insertOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_qimen_stockout_position_detail (
rec_id,
stockout_detail_id,
position_id,
position_no,
expire_date,
production_date,
batch_no,
position_goods_count,
batch_remark,
create_time,
update_time
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.recId},
#{item.stockoutDetailId},
#{item.positionId},
#{item.positionNo},
#{item.expireDate},
#{item.productionDate},
#{item.batchNo},
#{item.positionGoodsCount},
#{item.batchRemark},
#{item.createTime},
#{item.updateTime}
)
</foreach>
ON DUPLICATE KEY UPDATE
stockout_detail_id = VALUES(stockout_detail_id),
position_id = VALUES(position_id),
position_no = VALUES(position_no),
expire_date = VALUES(expire_date),
production_date = VALUES(production_date),
batch_no = VALUES(batch_no),
position_goods_count = VALUES(position_goods_count),
batch_remark = VALUES(batch_remark),
update_time = VALUES(update_time)
</insert>
</mapper>
src/test/java/com/sfa/job/service/feishu/EventCallbackServiceImplTest.java
浏览文件 @
1b6f3a72
...
...
@@ -27,9 +27,9 @@ public class EventCallbackServiceImplTest {
eventCallbackService
.
userResigned
(
"7566837232418670089"
);
}
public
static
void
main
(
String
[]
args
)
{
String
offboardingDate
=
"2025-11-28"
;
Date
date
=
DateUtils
.
parseDate
(
offboardingDate
);
System
.
out
.
println
(
date
);
}
//
public static void main(String[] args) {
//
String offboardingDate = "2025-11-28";
//
Date date = DateUtils.parseDate(offboardingDate);
//
System.out.println(date);
//
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论