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
6b140908
提交
6b140908
authored
3月 14, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、优化同步采集代码
2、退换货采集完善
上级
88e3aa04
隐藏空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
1027 行增加
和
261 行删除
+1027
-261
FinanceOrderDetailSyncController.java
.../controller/finance/FinanceOrderDetailSyncController.java
+14
-3
CollectOrderLogDao.java
...java/com/sfa/job/domain/order/dao/CollectOrderLogDao.java
+1
-1
WdtRefundAmountDetailDao.java
...om/sfa/job/domain/order/dao/WdtRefundAmountDetailDao.java
+10
-0
CollectOrderLogDaoImpl.java
...sfa/job/domain/order/dao/impl/CollectOrderLogDaoImpl.java
+6
-3
WdtRefundAmountDetailDaoImpl.java
...b/domain/order/dao/impl/WdtRefundAmountDetailDaoImpl.java
+28
-0
CollectOrderLog.java
...java/com/sfa/job/domain/order/entity/CollectOrderLog.java
+13
-3
WdtRefundAmountDetail.java
...om/sfa/job/domain/order/entity/WdtRefundAmountDetail.java
+64
-15
WdtRefundOrder.java
.../java/com/sfa/job/domain/order/entity/WdtRefundOrder.java
+314
-63
WdtRefundOrderDetail.java
...com/sfa/job/domain/order/entity/WdtRefundOrderDetail.java
+210
-42
WdtSwapOrder.java
...in/java/com/sfa/job/domain/order/entity/WdtSwapOrder.java
+69
-18
WdtSwapOrderDetail.java
...a/com/sfa/job/domain/order/entity/WdtSwapOrderDetail.java
+64
-15
WdtRefundAmountDetailMapper.java
.../job/domain/order/mapper/WdtRefundAmountDetailMapper.java
+13
-0
CollectOrderLogDto.java
...in/java/com/sfa/job/pojo/response/CollectOrderLogDto.java
+2
-2
SyncOrderDetailDto.java
...in/java/com/sfa/job/pojo/response/SyncOrderDetailDto.java
+6
-2
FinanceOrderSyncService.java
...va/com/sfa/job/service/order/FinanceOrderSyncService.java
+2
-0
FinanceOrderSyncServiceImpl.java
...a/job/service/order/impl/FinanceOrderSyncServiceImpl.java
+120
-79
WangdiantongUtil.java
src/main/java/com/sfa/job/util/WangdiantongUtil.java
+6
-6
WdtRefundAmountDetailMapper.xml
...in/resources/mapper/order/WdtRefundAmountDetailMapper.xml
+56
-0
WdtSwapOrderDetailMapper.xml
src/main/resources/mapper/order/WdtSwapOrderDetailMapper.xml
+15
-5
WdtSwapOrderMapper.xml
src/main/resources/mapper/order/WdtSwapOrderMapper.xml
+14
-4
没有找到文件。
src/main/java/com/sfa/job/controller/finance/FinanceOrderDetailSyncController.java
浏览文件 @
6b140908
...
@@ -35,14 +35,25 @@ public class FinanceOrderDetailSyncController extends BaseController {
...
@@ -35,14 +35,25 @@ public class FinanceOrderDetailSyncController extends BaseController {
return
detailDto
;
return
detailDto
;
}
}
@GetMapping
(
"/updateZbjType"
)
public
SyncOrderDetailDto
updateZbjType
(
Date
startTime
,
Date
endTime
)
{
log
.
info
(
"接口开始同步-旺店通订单明细api接口数据"
);
// 可以传参开始时间和结束时间,用于补充特定时间的数据采集
SyncOrderDetailDto
detailDto
=
syncService
.
updateZbjType
(
startTime
,
endTime
);
log
.
info
(
"接口结束同步-旺店通订单明细api接口数据, 共同步订单{}条数据,订单明细{}条,订单批次号:{},订单的开始时间{}和结束时间{}"
,
detailDto
.
getOrderCount
(),
detailDto
.
getOrderDetailCount
(),
detailDto
.
getBatchNo
(),
DateUtil
.
formatDateTime
(
detailDto
.
getStartTime
()),
DateUtil
.
formatDateTime
(
detailDto
.
getEndTime
())
);
return
detailDto
;
}
@GetMapping
(
"/syncWdtRefundOrder"
)
@GetMapping
(
"/syncWdtRefundOrder"
)
public
SyncOrderDetailDto
syncWdtRefundOrder
(
Date
startTime
,
Date
endTime
)
{
public
SyncOrderDetailDto
syncWdtRefundOrder
(
Date
startTime
,
Date
endTime
)
{
log
.
info
(
"
接口开始
同步-旺店通退换订单明细api接口数据"
);
log
.
info
(
"
开始接口
同步-旺店通退换订单明细api接口数据"
);
// 可以传参开始时间和结束时间,用于补充特定时间的数据采集
// 可以传参开始时间和结束时间,用于补充特定时间的数据采集
SyncOrderDetailDto
detailDto
=
syncService
.
syncWdtRefundOrder
(
startTime
,
endTime
,
1
);
SyncOrderDetailDto
detailDto
=
syncService
.
syncWdtRefundOrder
(
startTime
,
endTime
,
1
);
log
.
info
(
"
接口结束同步-旺店通退换订单明细api接口数据, 共同步订单{}条数据,订单明细{}条,订单批次号:{},订单的开始时间{}和结束时间
{}"
,
log
.
info
(
"
结束接口同步-旺店通退换订单明细api接口数据, 共同步退换货订单{}条数据,退换货订单明细{}条,退换货同步批次号:{},订单的开始时间{}和结束时间{},数量:
{}"
,
detailDto
.
getOrderCount
(),
detailDto
.
getOrderDetailCount
(),
detailDto
.
getBatchNo
(),
detailDto
.
getOrderCount
(),
detailDto
.
getOrderDetailCount
(),
detailDto
.
getBatchNo
(),
DateUtil
.
formatDateTime
(
detailDto
.
getStartTime
()),
DateUtil
.
formatDateTime
(
detailDto
.
getEndTime
())
);
DateUtil
.
formatDateTime
(
detailDto
.
getStartTime
()),
DateUtil
.
formatDateTime
(
detailDto
.
getEndTime
())
,
detailDto
.
getRemark
()
);
return
detailDto
;
return
detailDto
;
}
}
...
...
src/main/java/com/sfa/job/domain/order/dao/CollectOrderLogDao.java
浏览文件 @
6b140908
...
@@ -7,5 +7,5 @@ public interface CollectOrderLogDao {
...
@@ -7,5 +7,5 @@ public interface CollectOrderLogDao {
// 插入一条记录
// 插入一条记录
void
insert
(
SyncOrderDetailDto
collectOrderLog
);
void
insert
(
SyncOrderDetailDto
collectOrderLog
);
CollectOrderLogDto
selectOrderSyncLatest
(
Integer
syncType
);
CollectOrderLogDto
selectOrderSyncLatest
(
Integer
syncType
,
String
method
);
}
}
src/main/java/com/sfa/job/domain/order/dao/WdtRefundAmountDetailDao.java
0 → 100644
浏览文件 @
6b140908
package
com
.
sfa
.
job
.
domain
.
order
.
dao
;
import
com.sfa.job.domain.order.entity.WdtRefundAmountDetail
;
import
java.util.List
;
public
interface
WdtRefundAmountDetailDao
{
void
saveOrUpdateBatch
(
List
<
WdtRefundAmountDetail
>
mergeList
);
}
src/main/java/com/sfa/job/domain/order/dao/impl/CollectOrderLogDaoImpl.java
浏览文件 @
6b140908
...
@@ -24,24 +24,27 @@ public class CollectOrderLogDaoImpl implements CollectOrderLogDao {
...
@@ -24,24 +24,27 @@ public class CollectOrderLogDaoImpl implements CollectOrderLogDao {
@Override
@Override
public
void
insert
(
SyncOrderDetailDto
detailDto
)
{
public
void
insert
(
SyncOrderDetailDto
detailDto
)
{
CollectOrderLog
collectOrderLog
=
new
CollectOrderLog
();
CollectOrderLog
collectOrderLog
=
new
CollectOrderLog
();
BeanUtils
.
copyProperties
(
detailDto
,
collectOrderLog
);
collectOrderLog
.
setSyncType
(
detailDto
.
getSyncType
());
collectOrderLog
.
setSyncType
(
detailDto
.
getSyncType
());
collectOrderLog
.
setMethod
(
detailDto
.
getMethod
());
collectOrderLog
.
setMethod
(
detailDto
.
getMethod
());
collectOrderLog
.
set
OrderCount
(
detailDto
.
getOrderCount
());
collectOrderLog
.
set
StartTime
(
detailDto
.
getStartTime
());
collectOrderLog
.
set
OrderDetailCount
(
detailDto
.
getOrderDetailCount
());
collectOrderLog
.
set
EndTime
(
detailDto
.
getEndTime
());
collectOrderLog
.
setBatchNo
(
detailDto
.
getBatchNo
());
collectOrderLog
.
setBatchNo
(
detailDto
.
getBatchNo
());
collectOrderLog
.
setLatestTime
(
detailDto
.
getLatestTime
()
);
collectOrderLog
.
setLatestTime
(
detailDto
.
getLatestTime
()
);
collectOrderLog
.
setPageNo
(
detailDto
.
getPageNo
());
collectOrderLog
.
setPageNo
(
detailDto
.
getPageNo
());
collectOrderLog
.
setTotalCount
(
detailDto
.
getTotalCount
());
collectOrderLog
.
setTotalCount
(
detailDto
.
getTotalCount
());
collectOrderLog
.
setRemark
(
detailDto
.
getRemark
());
logInfoMapper
.
insert
(
collectOrderLog
);
logInfoMapper
.
insert
(
collectOrderLog
);
}
}
@Override
@Override
public
CollectOrderLogDto
selectOrderSyncLatest
(
Integer
syncType
)
{
public
CollectOrderLogDto
selectOrderSyncLatest
(
Integer
syncType
,
String
method
)
{
// 查询最新发货日期
// 查询最新发货日期
List
<
CollectOrderLog
>
orderList
=
logInfoMapper
.
selectList
(
List
<
CollectOrderLog
>
orderList
=
logInfoMapper
.
selectList
(
new
LambdaQueryWrapper
<
CollectOrderLog
>()
new
LambdaQueryWrapper
<
CollectOrderLog
>()
// 默认查询xxljob自动同步时间
// 默认查询xxljob自动同步时间
.
eq
(
CollectOrderLog:
:
getSyncType
,
syncType
)
.
eq
(
CollectOrderLog:
:
getSyncType
,
syncType
)
.
eq
(
CollectOrderLog:
:
getMethod
,
method
)
.
eq
(
CollectOrderLog:
:
getDelFlag
,
0
)
.
eq
(
CollectOrderLog:
:
getDelFlag
,
0
)
.
orderByDesc
(
CollectOrderLog:
:
getUpdateTime
)
.
orderByDesc
(
CollectOrderLog:
:
getUpdateTime
)
.
last
(
"LIMIT 1"
));
.
last
(
"LIMIT 1"
));
...
...
src/main/java/com/sfa/job/domain/order/dao/impl/WdtRefundAmountDetailDaoImpl.java
0 → 100644
浏览文件 @
6b140908
package
com
.
sfa
.
job
.
domain
.
order
.
dao
.
impl
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.sfa.job.domain.order.dao.WdtRefundAmountDetailDao
;
import
com.sfa.job.domain.order.entity.WdtRefundAmountDetail
;
import
com.sfa.job.domain.order.mapper.WdtRefundAmountDetailMapper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@DS
(
"bi"
)
@Repository
public
class
WdtRefundAmountDetailDaoImpl
implements
WdtRefundAmountDetailDao
{
private
static
final
int
BATCH_SIZE
=
1000
;
@Autowired
private
WdtRefundAmountDetailMapper
amountDetailMapper
;
@Override
public
void
saveOrUpdateBatch
(
List
<
WdtRefundAmountDetail
>
mergeList
)
{
for
(
int
i
=
0
;
i
<
mergeList
.
size
();
i
+=
BATCH_SIZE
)
{
int
toIndex
=
Math
.
min
(
i
+
BATCH_SIZE
,
mergeList
.
size
());
List
<
WdtRefundAmountDetail
>
batchLists
=
mergeList
.
subList
(
i
,
toIndex
);
amountDetailMapper
.
saveOrUpdateBatch
(
batchLists
);
}
}
}
src/main/java/com/sfa/job/domain/order/entity/CollectOrderLog.java
浏览文件 @
6b140908
...
@@ -25,17 +25,28 @@ public class CollectOrderLog implements Serializable {
...
@@ -25,17 +25,28 @@ public class CollectOrderLog implements Serializable {
*/
*/
@TableId
(
value
=
"cli_id"
,
type
=
IdType
.
AUTO
)
@TableId
(
value
=
"cli_id"
,
type
=
IdType
.
AUTO
)
private
Long
cliId
;
private
Long
cliId
;
/**
* 方法,用于区分不同类别的同步
*/
private
String
method
;
private
String
method
;
/**
* 备注,记录数量
*/
private
String
remark
;
private
Integer
totalCount
;
/**
/**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/
*/
private
Integer
orderCount
;
private
Date
startTime
;
/**
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
*/
private
Integer
orderDetailCount
;
private
Date
endTime
;
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
;
/**
/**
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
...
@@ -86,6 +97,5 @@ public class CollectOrderLog implements Serializable {
...
@@ -86,6 +97,5 @@ public class CollectOrderLog implements Serializable {
private
Integer
syncType
;
private
Integer
syncType
;
private
Integer
totalCount
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtRefundAmountDetail.java
浏览文件 @
6b140908
...
@@ -13,19 +13,68 @@ import java.math.BigDecimal;
...
@@ -13,19 +13,68 @@ import java.math.BigDecimal;
@Data
@Data
@TableName
(
value
=
"wdt_refund_amount_detail"
)
@TableName
(
value
=
"wdt_refund_amount_detail"
)
public
class
WdtRefundAmountDetail
{
public
class
WdtRefundAmountDetail
{
private
Integer
recId
;
// 金额明细记录id
/**
private
Integer
refundId
;
// 退换单id
* 金额明细记录id
private
Integer
refundType
;
// 退换类型 1:货款 2:邮费 99:返现
*/
private
Integer
isReturn
;
// 金额流向 0:商家->买家 1:买家->商家
private
Integer
recId
;
private
BigDecimal
refundAmount
;
// 退款金额
private
BigDecimal
receiveAmount
;
// 收款金额
/**
private
Boolean
isGuarantee
;
// 是否担保支付
* 退换单id
private
Integer
accountId
;
// 支付账户
*/
private
String
payAccount
;
// 买家账号(仅自有平台及线下平台返回)
private
Integer
refundId
;
private
String
accountName
;
// 买家开户人姓名
private
String
accountBank
;
// 开户银行
/**
private
Boolean
isAuto
;
// 是否系统自动生成
* 退换类型 1:货款 2:邮费 99:返现
private
String
remark
;
// 备注
*/
private
Integer
refundType
;
// getters & setters
/**
* 金额流向 0:商家->买家 1:买家->商家
*/
private
Integer
isReturn
;
/**
* 退款金额
*/
private
BigDecimal
refundAmount
;
/**
* 收款金额
*/
private
BigDecimal
receiveAmount
;
/**
* 是否担保支付
*/
private
Boolean
isGuarantee
;
/**
* 支付账户
*/
private
Integer
accountId
;
/**
* 买家账号(仅自有平台及线下平台返回)
*/
private
String
payAccount
;
/**
* 买家开户人姓名
*/
private
String
accountName
;
/**
* 开户银行
*/
private
String
accountBank
;
/**
* 是否系统自动生成
*/
private
Boolean
isAuto
;
/**
* 备注
*/
private
String
remark
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtRefundOrder.java
浏览文件 @
6b140908
...
@@ -14,67 +14,318 @@ import java.util.List;
...
@@ -14,67 +14,318 @@ import java.util.List;
@Data
@Data
@TableName
(
value
=
"wdt_refund_order"
)
@TableName
(
value
=
"wdt_refund_order"
)
public
class
WdtRefundOrder
{
public
class
WdtRefundOrder
{
private
Integer
refundId
;
// 退换单id
/**
private
String
srcTids
;
// 原始单号(关联的销售单平台订单号)
* 退换单id
private
String
refundNo
;
// 退换单号
*/
private
String
remark
;
// 备注
private
Integer
refundId
;
private
Integer
type
;
// 退换单类型 1:售前退款;2:退货;3:换货;4:退款不退货;6:保价退款
private
Integer
stockinStatus
;
// 入库状态 0:无需入库;1:待入库;2:部分入库;3:全部入库;4:终止入库
/**
private
String
flagName
;
// 标记名称
* 原始单号(关联的销售单平台订单号)
private
BigDecimal
returnGoodsCount
;
// 退回货品数量
*/
private
String
receiverTelno
;
// 退款订单中收件人电话(仅自有平台及线下平台返回)
private
String
srcTids
;
private
String
receiverName
;
// 退款订单中收件人姓名(仅自有平台及线下平台返回)
private
String
modified
;
// 修改时间
/**
private
Integer
noteCount
;
// 便签数量
* 退换单号
private
String
shopNo
;
// 店铺编号
*/
private
Integer
fromType
;
// 建单方式 0:API抓单;1:手工建单;2:Excel导入;3:分销商推送
private
String
refundNo
;
private
String
created
;
// 建单时间
private
String
settleTime
;
// 结算时间
/**
private
String
checkTime
;
// 审核时间
* 备注
private
String
returnLogisticsNo
;
// 退货物流单号
*/
private
String
tradeNoList
;
// 系统订单号列表
private
String
remark
;
private
BigDecimal
guaranteeRefundAmount
;
// 平台退款金额(担保退款金额)
private
BigDecimal
returnGoodsAmount
;
// 退货金额
/**
private
String
returnLogisticsName
;
// 物流公司名称
* 退换单类型 1:售前退款;2:退货;3:换货;4:退款不退货;6:保价退款
private
String
reasonName
;
// 退换说明
*/
private
String
refundReason
;
// 退款原因
private
Integer
type
;
private
String
buyerNick
;
// 客户网名(仅自有平台及线下平台返回)
private
String
operatorName
;
// 建单者
/**
private
BigDecimal
actualRefundAmount
;
// 实际退款金额
* 入库状态 0:无需入库;1:待入库;2:部分入库;3:全部入库;4:终止入库
private
String
revertReasonName
;
// 驳回原因
*/
private
String
returnWarehouseNo
;
// 退回仓库编号
private
Integer
stockinStatus
;
private
BigDecimal
directRefundAmount
;
// 线下退款金额(非担保退款金额)
private
BigDecimal
receiveAmount
;
// 收款金额
/**
private
String
customerName
;
// 客户姓名(仅自有平台及线下平台返回)
* 标记名称
private
String
fenxiaoNickName
;
// 分销商昵称
*/
private
Integer
status
;
// 退换单状态 10:已取消;20:待审核;30:已审核...
private
String
flagName
;
private
Integer
shopId
;
// 店铺id
private
Integer
tradeId
;
// 订单id
/**
private
String
rawRefundNos
;
// 原始退换单号
* 退回货品数量
private
String
payId
;
// 支付订单号
*/
private
String
providerRefundNo
;
// 分销退换单号
private
BigDecimal
returnGoodsCount
;
private
Integer
shopPlatformId
;
// 店铺平台id
private
String
tidList
;
// 原始单号
/**
private
Integer
subPlatformId
;
// 子平台id
* 退款订单中收件人电话(仅自有平台及线下平台返回)
private
Integer
returnWarehouseId
;
// 退回仓库id
*/
private
Integer
platformId
;
// 平台id
private
String
receiverTelno
;
private
String
wmsOwnerNo
;
// 奇门货主编号
private
Integer
warehouseType
;
// 退回仓库类型
/**
private
Integer
badReason
;
// 拦截原因
* 退款订单中收件人姓名(仅自有平台及线下平台返回)
private
String
modifiedDate
;
// 最后修改时间
*/
private
String
returnMaskInfo
;
// 退换信息
private
String
receiverName
;
private
Integer
processStatus
;
// 处理状态
private
Integer
reasonId
;
// 退款原因id
/**
private
Integer
revertReason
;
// 驳回原因id
* 修改时间
private
Integer
customerId
;
// 客户id
*/
private
Integer
consignMode
;
// 发货方式
private
String
modified
;
private
String
refundTime
;
// 退款创建时间
private
String
fenxiaoTid
;
// 分销原始单号
/**
private
String
fenxiaoNickNo
;
// 分销商编码
* 便签数量
private
String
wmsCode
;
// wms单号
*/
private
Integer
rrStatus
;
// 平台状态
private
Integer
noteCount
;
private
String
currentPhaseTimeout
;
// 退款成功时间
private
List
<
WdtRefundOrderDetail
>
detailList
;
// 退换单详情
/**
private
List
<
WdtRefundAmountDetail
>
amountDetailList
;
// 金额明细
* 店铺编号
private
WdtSwapOrder
swapOrder
;
// 换出订单
*/
private
String
shopNo
;
/**
* 建单方式 0:API抓单;1:手工建单;2:Excel导入;3:分销商推送
*/
private
Integer
fromType
;
/**
* 建单时间
*/
private
String
created
;
/**
* 结算时间
*/
private
String
settleTime
;
/**
* 审核时间
*/
private
String
checkTime
;
/**
* 退货物流单号
*/
private
String
returnLogisticsNo
;
/**
* 系统订单号列表
*/
private
String
tradeNoList
;
/**
* 平台退款金额(担保退款金额)
*/
private
BigDecimal
guaranteeRefundAmount
;
/**
* 退货金额
*/
private
BigDecimal
returnGoodsAmount
;
/**
* 物流公司名称
*/
private
String
returnLogisticsName
;
/**
* 退换说明
*/
private
String
reasonName
;
/**
* 退款原因
*/
private
String
refundReason
;
/**
* 客户网名(仅自有平台及线下平台返回)
*/
private
String
buyerNick
;
/**
* 建单者
*/
private
String
operatorName
;
/**
* 实际退款金额
*/
private
BigDecimal
actualRefundAmount
;
/**
* 驳回原因
*/
private
String
revertReasonName
;
/**
* 退回仓库编号
*/
private
String
returnWarehouseNo
;
/**
* 线下退款金额(非担保退款金额)
*/
private
BigDecimal
directRefundAmount
;
/**
* 收款金额
*/
private
BigDecimal
receiveAmount
;
/**
* 客户姓名(仅自有平台及线下平台返回)
*/
private
String
customerName
;
/**
* 分销商昵称
*/
private
String
fenxiaoNickName
;
/**
* 退换单状态 10:已取消;20:待审核;30:已审核...
*/
private
Integer
status
;
/**
* 店铺id
*/
private
Integer
shopId
;
/**
* 订单id
*/
private
Integer
tradeId
;
/**
* 原始退换单号
*/
private
String
rawRefundNos
;
/**
* 支付订单号
*/
private
String
payId
;
/**
* 分销退换单号
*/
private
String
providerRefundNo
;
/**
* 店铺平台id
*/
private
Integer
shopPlatformId
;
/**
* 原始单号
*/
private
String
tidList
;
/**
* 子平台id
*/
private
Integer
subPlatformId
;
/**
* 退回仓库id
*/
private
Integer
returnWarehouseId
;
/**
* 平台id
*/
private
Integer
platformId
;
/**
* 奇门货主编号
*/
private
String
wmsOwnerNo
;
/**
* 退回仓库类型
*/
private
Integer
warehouseType
;
/**
* 拦截原因
*/
private
Integer
badReason
;
/**
* 最后修改时间
*/
private
String
modifiedDate
;
/**
* 退换信息
*/
private
String
returnMaskInfo
;
/**
* 处理状态
*/
private
Integer
processStatus
;
/**
* 退款原因id
*/
private
Integer
reasonId
;
/**
* 驳回原因id
*/
private
Integer
revertReason
;
/**
* 客户id
*/
private
Integer
customerId
;
/**
* 发货方式
*/
private
Integer
consignMode
;
/**
* 退款创建时间
*/
private
String
refundTime
;
/**
* 分销原始单号
*/
private
String
fenxiaoTid
;
/**
* 分销商编码
*/
private
String
fenxiaoNickNo
;
/**
* wms单号
*/
private
String
wmsCode
;
/**
* 平台状态
*/
private
Integer
rrStatus
;
/**
* 退款成功时间
*/
private
String
currentPhaseTimeout
;
/**
* 退换单详情
*/
private
List
<
WdtRefundOrderDetail
>
detailList
;
/**
* 金额明细
*/
private
List
<
WdtRefundAmountDetail
>
amountDetailList
;
/**
* 换出订单
*/
private
WdtSwapOrder
swapOrder
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtRefundOrderDetail.java
浏览文件 @
6b140908
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
...
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import
lombok.Data
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
/**
/**
* 退换货订单明细数据
* 退换货订单明细数据
* @author lvbencai
* @author lvbencai
...
@@ -12,46 +13,213 @@ import java.math.BigDecimal;
...
@@ -12,46 +13,213 @@ import java.math.BigDecimal;
@Data
@Data
@TableName
(
value
=
"wdt_refund_order_detail"
)
@TableName
(
value
=
"wdt_refund_order_detail"
)
public
class
WdtRefundOrderDetail
{
public
class
WdtRefundOrderDetail
{
private
Integer
recId
;
// 退换单明细Id
/**
private
Integer
refundId
;
// 退换单id
* 退换单明细Id
private
String
oid
;
// 原始子单号
*/
private
Integer
tradeOrderId
;
// 订单明细id
private
Integer
recId
;
private
Integer
platformId
;
// 平台id
private
String
tid
;
// 原始单号
/**
private
String
tradeNo
;
// 系统订单编号
* 退换单id
private
BigDecimal
num
;
// 数量
*/
private
BigDecimal
price
;
// 价格
private
Integer
refundId
;
private
BigDecimal
originalPrice
;
// 原价
private
BigDecimal
checkedCostPrice
;
// 成本价
/**
private
BigDecimal
refundNum
;
// 退款数量
* 原始子单号
private
BigDecimal
totalAmount
;
// 退款总额
*/
private
BigDecimal
refundAmount
;
// 已退款金额
private
String
oid
;
private
Boolean
isGuarantee
;
// 是否担保退款
private
String
goodsNo
;
// 货品编号
/**
private
String
goodsName
;
// 货品名称
* 订单明细id
private
String
specName
;
// 规格名
*/
private
String
specNo
;
// 商家编码
private
Integer
tradeOrderId
;
private
String
goodsId
;
// 平台货品id
private
String
specId
;
// 平台规格id
/**
private
Integer
sysGoodsId
;
// 系统货品id
* 平台id
private
Integer
sysSpecId
;
// 系统规格id
*/
private
String
specCode
;
// 规格码
private
Integer
platformId
;
private
String
barcode
;
// 条码
private
BigDecimal
stockinNum
;
// 入库数量
/**
private
String
remark
;
// 备注
* 原始单号
private
String
apiSpecName
;
// 平台规格名称
*/
private
String
apiGoodsName
;
// 平台货品名称
private
String
tid
;
private
String
modified
;
// 最后修改时间
private
String
suiteNo
;
// 组合装编号
/**
private
String
suiteName
;
// 组合装名称
* 系统订单编号
private
String
rawRefundNos
;
// 原始退款单号
*/
private
String
rawRefundNo
;
// 原始退款单号
private
String
tradeNo
;
private
Integer
salesTradeId
;
// 订单id
private
BigDecimal
discount
;
// 总折扣金额
/**
private
BigDecimal
paid
;
// 已支付金额
* 数量
private
Integer
suiteId
;
// 组合装id
*/
private
BigDecimal
suiteNum
;
// 组合装数量
private
BigDecimal
num
;
private
String
created
;
// 创建时间
private
String
modifiedDate
;
// 最后修改时间
/**
private
Integer
giftType
;
// 赠品类型
* 价格
*/
private
BigDecimal
price
;
/**
* 原价
*/
private
BigDecimal
originalPrice
;
/**
* 成本价
*/
private
BigDecimal
checkedCostPrice
;
/**
* 退款数量
*/
private
BigDecimal
refundNum
;
/**
* 退款总额
*/
private
BigDecimal
totalAmount
;
/**
* 已退款金额
*/
private
BigDecimal
refundAmount
;
/**
* 是否担保退款
*/
private
Boolean
isGuarantee
;
/**
* 货品编号
*/
private
String
goodsNo
;
/**
* 货品名称
*/
private
String
goodsName
;
/**
* 规格名
*/
private
String
specName
;
/**
* 商家编码
*/
private
String
specNo
;
/**
* 平台货品id
*/
private
String
goodsId
;
/**
* 平台规格id
*/
private
String
specId
;
/**
* 系统货品id
*/
private
Integer
sysGoodsId
;
/**
* 系统规格id
*/
private
Integer
sysSpecId
;
/**
* 规格码
*/
private
String
specCode
;
/**
* 条码
*/
private
String
barcode
;
/**
* 入库数量
*/
private
BigDecimal
stockinNum
;
/**
* 备注
*/
private
String
remark
;
/**
* 平台规格名称
*/
private
String
apiSpecName
;
/**
* 平台货品名称
*/
private
String
apiGoodsName
;
/**
* 最后修改时间
*/
private
String
modified
;
/**
* 组合装编号
*/
private
String
suiteNo
;
/**
* 组合装名称
*/
private
String
suiteName
;
/**
* 原始退款单号
*/
private
String
rawRefundNos
;
/**
* 原始退款单号
*/
private
String
rawRefundNo
;
/**
* 订单id
*/
private
Integer
salesTradeId
;
/**
* 总折扣金额
*/
private
BigDecimal
discount
;
/**
* 已支付金额
*/
private
BigDecimal
paid
;
/**
* 组合装id
*/
private
Integer
suiteId
;
/**
* 组合装数量
*/
private
BigDecimal
suiteNum
;
/**
* 创建时间
*/
private
String
created
;
/**
* 最后修改时间
*/
private
String
modifiedDate
;
/**
* 赠品类型
*/
private
Integer
giftType
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtSwapOrder.java
浏览文件 @
6b140908
...
@@ -6,8 +6,6 @@ import lombok.Data;
...
@@ -6,8 +6,6 @@ import lombok.Data;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* 退换货订单数据
* 退换货订单数据
* @author lvbencai
* @author lvbencai
...
@@ -16,20 +14,73 @@ import java.util.List;
...
@@ -16,20 +14,73 @@ import java.util.List;
@Data
@Data
@TableName
(
value
=
"wdt_swap_order"
)
@TableName
(
value
=
"wdt_swap_order"
)
public
class
WdtSwapOrder
{
public
class
WdtSwapOrder
{
private
String
tid
;
// 换出订单原始单号
/**
private
String
shopNo
;
// 店铺编号
* 换出订单原始单号
private
String
shopName
;
// 店铺名称
*/
private
String
warehouseNo
;
// 仓库名称
private
String
tid
;
private
Integer
shopId
;
// 店铺id
private
Integer
warehouseId
;
// 仓库id
/**
private
Integer
swapProvince
;
// 省份id
* 店铺编号
private
Integer
swapCity
;
// 城市id
*/
private
String
swapArea
;
// 地区
private
String
shopNo
;
private
Integer
swapDistrict
;
// 地区id
private
Integer
swapLogisticsId
;
// 换货新订单物流公司id
/**
private
BigDecimal
postAmount
;
// 换货邮费
* 店铺名称
private
BigDecimal
otherAmount
;
// 其他金额
*/
private
List
<
WdtSwapOrderDetail
>
swapOrderDetailList
;
// 换出订单明细
private
String
shopName
;
// getters & setters
/**
* 仓库名称
*/
private
String
warehouseNo
;
/**
* 店铺id
*/
private
Integer
shopId
;
/**
* 仓库id
*/
private
Integer
warehouseId
;
/**
* 省份id
*/
private
Integer
swapProvince
;
/**
* 城市id
*/
private
Integer
swapCity
;
/**
* 地区
*/
private
String
swapArea
;
/**
* 地区id
*/
private
Integer
swapDistrict
;
/**
* 换货新订单物流公司id
*/
private
Integer
swapLogisticsId
;
/**
* 换货邮费
*/
private
BigDecimal
postAmount
;
/**
* 其他金额
*/
private
BigDecimal
otherAmount
;
/**
* 换出订单明细
*/
private
List
<
WdtSwapOrderDetail
>
swapOrderDetailList
;
}
}
src/main/java/com/sfa/job/domain/order/entity/WdtSwapOrderDetail.java
浏览文件 @
6b140908
...
@@ -13,19 +13,68 @@ import java.math.BigDecimal;
...
@@ -13,19 +13,68 @@ import java.math.BigDecimal;
@Data
@Data
@TableName
(
value
=
"wdt_swap_order_detail"
)
@TableName
(
value
=
"wdt_swap_order_detail"
)
public
class
WdtSwapOrderDetail
{
public
class
WdtSwapOrderDetail
{
private
String
oid
;
// 原始子单号
/**
private
Byte
targetType
;
// 货品类型(1 单品,2 组合装)
* 原始子单号
private
Integer
targetId
;
// 换出货品id
*/
private
Boolean
defect
;
// 是否残次品
private
String
oid
;
private
String
goodsName
;
// 货品名称
private
String
goodsNo
;
// 货品编号
/**
private
String
specName
;
// 规格名称
* 货品类型(1 单品,2 组合装)
private
String
specCode
;
// 规格码
*/
private
String
merchantNo
;
// 商家编码
private
Byte
targetType
;
private
BigDecimal
price
;
// 零售价
private
BigDecimal
totalAmount
;
// 总价
/**
private
BigDecimal
num
;
// 数量
* 换出货品id
private
String
remark
;
// 备注
*/
private
Integer
targetId
;
// getters & setters
/**
* 是否残次品
*/
private
Boolean
defect
;
/**
* 货品名称
*/
private
String
goodsName
;
/**
* 货品编号
*/
private
String
goodsNo
;
/**
* 规格名称
*/
private
String
specName
;
/**
* 规格码
*/
private
String
specCode
;
/**
* 商家编码
*/
private
String
merchantNo
;
/**
* 零售价
*/
private
BigDecimal
price
;
/**
* 总价
*/
private
BigDecimal
totalAmount
;
/**
* 数量
*/
private
BigDecimal
num
;
/**
* 备注
*/
private
String
remark
;
}
}
src/main/java/com/sfa/job/domain/order/mapper/WdtRefundAmountDetailMapper.java
0 → 100644
浏览文件 @
6b140908
package
com
.
sfa
.
job
.
domain
.
order
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.sfa.job.domain.order.entity.WdtRefundAmountDetail
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
@Mapper
public
interface
WdtRefundAmountDetailMapper
extends
BaseMapper
<
WdtRefundAmountDetail
>
{
void
saveOrUpdateBatch
(
List
<
WdtRefundAmountDetail
>
batchLists
);
}
src/main/java/com/sfa/job/pojo/response/CollectOrderLogDto.java
浏览文件 @
6b140908
...
@@ -26,12 +26,12 @@ public class CollectOrderLogDto implements Serializable {
...
@@ -26,12 +26,12 @@ public class CollectOrderLogDto implements Serializable {
/**
/**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/
*/
private
Integer
orderCount
;
private
Date
endTime
;
/**
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
*/
private
Integer
orderDetailCount
;
private
Date
startTime
;
/**
/**
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
...
...
src/main/java/com/sfa/job/pojo/response/SyncOrderDetailDto.java
浏览文件 @
6b140908
...
@@ -11,6 +11,7 @@ import java.util.Date;
...
@@ -11,6 +11,7 @@ import java.util.Date;
@Data
@Data
public
class
SyncOrderDetailDto
{
public
class
SyncOrderDetailDto
{
private
String
method
;
private
String
method
;
private
String
remark
;
/**
/**
* 订单数量
* 订单数量
*/
*/
...
@@ -32,15 +33,18 @@ public class SyncOrderDetailDto {
...
@@ -32,15 +33,18 @@ public class SyncOrderDetailDto {
private
String
message
;
private
String
message
;
private
Integer
code
=
200
;
private
Integer
code
=
200
;
public
SyncOrderDetailDto
setDetailInfo
(
int
size
,
int
mergerListSize
,
int
beginPageNo
,
Integer
totalCount
,
String
batchNo
,
Date
endTime
,
Date
startTime
)
{
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
.
setOrderCount
(
size
);
this
.
setOrderDetailCount
(
mergerListSize
);
this
.
setOrderDetailCount
(
mergerListSize
);
this
.
setStartTime
(
startTime
);
this
.
setStartTime
(
startTime
);
this
.
setPageNo
(
beginPageNo
);
this
.
setEndTime
(
endTime
);
this
.
setEndTime
(
endTime
);
this
.
setLatestTime
(
endTime
);
this
.
setTotalCount
(
totalCount
);
this
.
setTotalCount
(
totalCount
);
this
.
setBatchNo
(
batchNo
);
this
.
setBatchNo
(
batchNo
);
this
.
setMethod
(
method
);
this
.
setSyncType
(
syncType
);
this
.
setRemark
(
remark
);
return
this
;
return
this
;
}
}
}
}
src/main/java/com/sfa/job/service/order/FinanceOrderSyncService.java
浏览文件 @
6b140908
...
@@ -9,4 +9,6 @@ public interface FinanceOrderSyncService {
...
@@ -9,4 +9,6 @@ public interface FinanceOrderSyncService {
SyncOrderDetailDto
syncWdtOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
);
SyncOrderDetailDto
syncWdtOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
);
SyncOrderDetailDto
syncWdtRefundOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
);
SyncOrderDetailDto
syncWdtRefundOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
);
SyncOrderDetailDto
updateZbjType
(
Date
startTime
,
Date
endTime
);
}
}
src/main/java/com/sfa/job/service/order/impl/FinanceOrderSyncServiceImpl.java
浏览文件 @
6b140908
...
@@ -26,7 +26,6 @@ import org.springframework.transaction.annotation.Transactional;
...
@@ -26,7 +26,6 @@ import org.springframework.transaction.annotation.Transactional;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicInteger
;
/**
/**
* 旺店通订单Service业务层处理
* 旺店通订单Service业务层处理
...
@@ -49,6 +48,14 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -49,6 +48,14 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
WdtRefundOrderDao
wdtRefundOrderDao
;
WdtRefundOrderDao
wdtRefundOrderDao
;
@Autowired
@Autowired
WdtRefundOrderDetailDao
wdtRefundOrderDetailDao
;
WdtRefundOrderDetailDao
wdtRefundOrderDetailDao
;
@Autowired
WdtSwapOrderDao
wdtSwapOrderDao
;
@Autowired
WdtSwapOrderDetailDao
wdtSwapOrderDetailDao
;
@Autowired
WdtRefundAmountDetailDao
amountDetailDao
;
@Autowired
@Autowired
FinianceBaseProductDao
baseProductDao
;
FinianceBaseProductDao
baseProductDao
;
@Autowired
@Autowired
...
@@ -71,32 +78,31 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -71,32 +78,31 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
public
SyncOrderDetailDto
syncWdtOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
)
{
public
SyncOrderDetailDto
syncWdtOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
)
{
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
String
batchNo
=
syncType
+
DateUtils
.
dateTimeNow
()
+
Thread
.
currentThread
().
getId
();
String
batchNo
=
syncType
+
DateUtils
.
dateTimeNow
()
+
Thread
.
currentThread
().
getId
();
AtomicInteger
beginPageNo
=
new
AtomicInteger
(
0
)
;
String
method
=
"sales.TradeQuery.queryWithDetail"
;
try
{
try
{
detailDto
.
setBatchNo
(
batchNo
);
detailDto
.
setStartTime
(
startTime
);
detailDto
.
setEndTime
(
endTime
);
detailDto
.
setPageNo
(
0
);
// 调用新方法设置时间范围
// 调用新方法设置时间范围
Date
[]
startTimeArray
=
{
startTime
};
setupTimeRange
(
detailDto
,
syncType
,
60
,
method
);
Date
[]
endTimeArray
=
{
endTime
};
startTime
=
detailDto
.
getStartTime
();
setupTimeRange
(
startTimeArray
,
endTimeArray
,
syncType
,
beginPageNo
);
endTime
=
detailDto
.
getEndTime
();
startTime
=
startTimeArray
[
0
];
endTime
=
endTimeArray
[
0
];
// 调用查询旺店通接口api 获取最新日期前的2小时
// 调用查询旺店通接口api 获取最新日期前的2小时
Date
currentLatest
=
DateUtils
.
addHours
(
new
Date
(),
-
2
);
Date
currentLatest
=
DateUtils
.
addHours
(
new
Date
(),
-
2
);
if
(
currentLatest
.
compareTo
(
startTime
)
<
0
)
{
if
(
currentLatest
.
compareTo
(
startTime
)
<
0
)
{
detailDto
.
setTotalCount
(
0
);
detailDto
.
setBatchNo
(
batchNo
);
detailDto
.
setStartTime
(
startTime
);
detailDto
.
setEndTime
(
endTime
);
detailDto
.
setMessage
(
String
.
format
(
"开始时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
currentLatest
)));
detailDto
.
setMessage
(
String
.
format
(
"开始时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
currentLatest
)));
log
.
warn
(
String
.
format
(
"开始时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
currentLatest
)));
log
.
warn
(
String
.
format
(
"开始时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
currentLatest
)));
return
detailDto
;
return
detailDto
;
}
}
if
(!
validateStartTime
(
startTime
,
endTime
,
batchNo
))
{
if
(!
validateStartTime
(
detailDto
))
{
return
detailDto
;
return
detailDto
;
}
}
log
.
info
(
"查询订单参数:开始时间{},结束时间{},当前页:{}"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
beginPageNo
.
get
());
log
.
info
(
"查询订单参数:开始时间{},结束时间{},当前页:{}"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
detailDto
.
getPageNo
());
WdtOrderQueryVO
wdtOrderQueryVO
=
new
WdtOrderQueryVO
();
WdtOrderQueryVO
wdtOrderQueryVO
=
new
WdtOrderQueryVO
();
wdtOrderQueryVO
.
setStart_time
(
com
.
alibaba
.
fastjson2
.
util
.
DateUtils
.
format
(
startTime
));
wdtOrderQueryVO
.
setStart_time
(
com
.
alibaba
.
fastjson2
.
util
.
DateUtils
.
format
(
startTime
));
...
@@ -105,13 +111,12 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -105,13 +111,12 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
params
.
putAll
(
BeanUtil
.
beanToMap
(
wdtOrderQueryVO
));
params
.
putAll
(
BeanUtil
.
beanToMap
(
wdtOrderQueryVO
));
// 旺店通入参 和其他入参分开传入 旺店通入参bean转map
// 旺店通入参 和其他入参分开传入 旺店通入参bean转map
String
method
=
"sales.TradeQuery.queryWithDetail"
;
WangdiantongQueryDto
wangdiantongQueryDto
=
wangdiantongUtil
.
queryWithDetail
(
params
,
detailDto
.
getPageNo
(),
method
);
WangdiantongQueryDto
wangdiantongQueryDto
=
wangdiantongUtil
.
queryWithDetail
(
params
,
beginPageNo
,
method
);
JSONArray
orderAllArray
=
wangdiantongQueryDto
.
getResult
();
JSONArray
orderAllArray
=
wangdiantongQueryDto
.
getResult
();
if
(
ObjectUtils
.
isEmpty
(
orderAllArray
))
{
if
(
ObjectUtils
.
isEmpty
(
orderAllArray
))
{
throw
new
ServiceException
(
"旺店通没有查询到订单数据"
);
throw
new
ServiceException
(
"旺店通没有查询到订单数据"
);
}
}
detailDto
.
setPageNo
(
wangdiantongQueryDto
.
getNextBeginPageNo
());
//转化成orderList
//转化成orderList
List
<
FinanceOrder
>
orders
=
JSONArray
.
parseArray
(
orderAllArray
.
toString
(),
FinanceOrder
.
class
,
JSONReader
.
Feature
.
SupportSmartMatch
);
List
<
FinanceOrder
>
orders
=
JSONArray
.
parseArray
(
orderAllArray
.
toString
(),
FinanceOrder
.
class
,
JSONReader
.
Feature
.
SupportSmartMatch
);
...
@@ -185,7 +190,7 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -185,7 +190,7 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
orderDetail
.
setStandardCost
(
new
BigDecimal
(
0
));
orderDetail
.
setStandardCost
(
new
BigDecimal
(
0
));
orderDetail
.
setSumActualCost
(
new
BigDecimal
(
0
));
orderDetail
.
setSumActualCost
(
new
BigDecimal
(
0
));
orderDetail
.
setSumStandardCost
(
new
BigDecimal
(
0
));
orderDetail
.
setSumStandardCost
(
new
BigDecimal
(
0
));
}
else
{
}
else
{
orderDetail
.
setActualCost
(
ObjectUtils
.
isNotEmpty
(
baseProductMap
.
get
(
orderDetail
.
getGoodsNo
()))
?
orderDetail
.
setActualCost
(
ObjectUtils
.
isNotEmpty
(
baseProductMap
.
get
(
orderDetail
.
getGoodsNo
()))
?
baseProductMap
.
get
(
orderDetail
.
getGoodsNo
()).
getActualCost
()
:
baseProductMap
.
get
(
orderDetail
.
getGoodsNo
()).
getActualCost
()
:
new
BigDecimal
(
0
)
new
BigDecimal
(
0
)
...
@@ -206,23 +211,11 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -206,23 +211,11 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
// 批量插入
// 批量插入
orderDetailDao
.
saveOrUpdateBatch
(
mergeList
);
orderDetailDao
.
saveOrUpdateBatch
(
mergeList
);
String
remark
=
String
.
format
(
"订单数量:%s,详情数量:%s"
,
orders
.
size
(),
mergeList
.
size
());
log
.
info
(
"插入订单和订单详情完成,批次{}开始时间{},结束时间{},订单数量:{},详情数量:{},下一次开始页数:{}"
,
batchNo
,
DateUtil
.
formatDateTime
(
startTime
),
log
.
info
(
"插入订单和订单详情完成,批次{}开始时间{},结束时间{},订单数量:{},详情数量:{},下一次开始页数:{}"
,
batchNo
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
orders
.
size
(),
mergeList
.
size
(),
beginPageNo
.
get
());
DateUtil
.
formatDateTime
(
endTime
),
orders
.
size
(),
mergeList
.
size
(),
detailDto
.
getPageNo
());
// dealCollectOrderLog(syncType, method, orders.size(), mergeList.size(), batchNo, endTime, beginPageNo, wangdiantongQueryDto);
// 接口测试使用
detailDto
.
setDetailInfo
(
method
,
remark
,
syncType
,
orders
.
size
(),
mergeList
.
size
(),
wangdiantongQueryDto
.
getTotalCount
(),
batchNo
,
endTime
,
startTime
);
// detailDto.setOrderCount(orders.size());
// detailDto.setOrderDetailCount(mergeList.size());
// detailDto.setStartTime(finalStartTime);
// detailDto.setPageNo(beginPageNo.get());
// detailDto.setEndTime(finalEndTime);
// detailDto.setTotalCount(wangdiantongQueryDto.getTotalCount());
// detailDto.setBatchNo(batchNo);
detailDto
.
setDetailInfo
(
orders
.
size
(),
mergeList
.
size
(),
beginPageNo
.
get
(),
wangdiantongQueryDto
.
getTotalCount
(),
batchNo
,
endTime
,
startTime
);
orderLogInfoDao
.
insert
(
detailDto
);
orderLogInfoDao
.
insert
(
detailDto
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
detailDto
.
setCode
(
HttpStatus
.
HTTP_INTERNAL_ERROR
);
detailDto
.
setCode
(
HttpStatus
.
HTTP_INTERNAL_ERROR
);
...
@@ -235,8 +228,10 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -235,8 +228,10 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
return
detailDto
;
return
detailDto
;
}
}
/**
/**
* 同步退换货数据
* 同步退换货数据
*
* @param startTime
* @param startTime
* @param endTime
* @param endTime
* @param syncType
* @param syncType
...
@@ -246,20 +241,23 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -246,20 +241,23 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
public
SyncOrderDetailDto
syncWdtRefundOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
)
{
public
SyncOrderDetailDto
syncWdtRefundOrder
(
Date
startTime
,
Date
endTime
,
Integer
syncType
)
{
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
String
batchNo
=
syncType
+
DateUtils
.
dateTimeNow
()
+
Thread
.
currentThread
().
getId
();
String
batchNo
=
syncType
+
DateUtils
.
dateTimeNow
()
+
Thread
.
currentThread
().
getId
();
AtomicInteger
beginPageNo
=
new
AtomicInteger
(
0
)
;
String
method
=
"aftersales.refund.Refund.search"
;
try
{
try
{
detailDto
.
setBatchNo
(
batchNo
);
detailDto
.
setStartTime
(
startTime
);
detailDto
.
setEndTime
(
endTime
);
detailDto
.
setPageNo
(
0
);
// 调用新方法设置时间范围
// 调用新方法设置时间范围
Date
[]
startTimeArray
=
{
startTime
};
setupTimeRange
(
detailDto
,
syncType
,
60
*
24
*
1
,
method
);
Date
[]
endTimeArray
=
{
endTime
};
startTime
=
detailDto
.
getStartTime
();
setupTimeRange
(
startTimeArray
,
endTimeArray
,
syncType
,
beginPageNo
);
endTime
=
detailDto
.
getEndTime
();
startTime
=
startTimeArray
[
0
];
if
(!
validateStartTime
(
detailDto
))
{
endTime
=
endTimeArray
[
0
];
if
(!
validateStartTime
(
startTime
,
endTime
,
batchNo
))
{
return
detailDto
;
return
detailDto
;
}
}
log
.
info
(
"查询订单参数:开始时间{},结束时间{},当前页:{}"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
beginPageNo
.
get
());
log
.
info
(
"查询订单参数:开始时间{},结束时间{},当前页:{}"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
detailDto
.
getPageNo
());
// 旺店通入参 和其他入参分开传入 旺店通入参bean转map
// 旺店通入参 和其他入参分开传入 旺店通入参bean转map
WdtRefundQueryVO
wdtOrderQueryVO
=
new
WdtRefundQueryVO
();
WdtRefundQueryVO
wdtOrderQueryVO
=
new
WdtRefundQueryVO
();
...
@@ -269,29 +267,49 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -269,29 +267,49 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
Map
<
String
,
Object
>
stringObjectMap
=
BeanUtil
.
beanToMap
(
wdtOrderQueryVO
);
Map
<
String
,
Object
>
stringObjectMap
=
BeanUtil
.
beanToMap
(
wdtOrderQueryVO
);
params
.
putAll
(
stringObjectMap
);
params
.
putAll
(
stringObjectMap
);
// 退换单查询
// 退换单查询
String
method
=
"aftersales.refund.Refund.search"
;
WangdiantongQueryDto
wangdiantongQueryDto
=
wangdiantongUtil
.
queryWithDetail
(
params
,
detailDto
.
getPageNo
(),
method
);
WangdiantongQueryDto
wangdiantongQueryDto
=
wangdiantongUtil
.
queryWithDetail
(
params
,
beginPageNo
,
method
);
JSONArray
orderAllArray
=
wangdiantongQueryDto
.
getResult
();
JSONArray
orderAllArray
=
wangdiantongQueryDto
.
getResult
();
if
(
ObjectUtils
.
isEmpty
(
orderAllArray
))
{
if
(
ObjectUtils
.
isEmpty
(
orderAllArray
))
{
throw
new
ServiceException
(
"旺店通没有查询到订单数据"
);
throw
new
ServiceException
(
"旺店通没有查询到订单数据"
);
}
}
detailDto
.
setPageNo
(
wangdiantongQueryDto
.
getNextBeginPageNo
());
// 保存数据
// 保存数据
List
<
WdtRefundOrder
>
o
rders
=
JSONArray
.
parseArray
(
orderAllArray
.
toString
(),
WdtRefundOrder
.
class
,
JSONReader
.
Feature
.
SupportSmartMatch
);
List
<
WdtRefundOrder
>
refundO
rders
=
JSONArray
.
parseArray
(
orderAllArray
.
toString
(),
WdtRefundOrder
.
class
,
JSONReader
.
Feature
.
SupportSmartMatch
);
wdtRefundOrderDao
.
saveOrUpdateBatch
(
o
rders
);
wdtRefundOrderDao
.
saveOrUpdateBatch
(
refundO
rders
);
List
<
WdtRefundOrderDetail
>
mergeList
=
new
ArrayList
<>();
List
<
WdtRefundOrderDetail
>
refundOrderDetails
=
new
ArrayList
<>();
o
rders
.
forEach
(
order
->
{
refundO
rders
.
forEach
(
order
->
{
mergeList
.
addAll
(
order
.
getDetailList
());
refundOrderDetails
.
addAll
(
order
.
getDetailList
());
});
});
wdtRefundOrderDetailDao
.
saveOrUpdateBatch
(
mergeList
);
wdtRefundOrderDetailDao
.
saveOrUpdateBatch
(
refundOrderDetails
);
log
.
info
(
"插入订单和订单详情完成,批次{}开始时间{},结束时间{},订单数量:{},详情数量:{},下一次开始页数:{}"
,
batchNo
,
DateUtil
.
formatDateTime
(
startTime
),
// 换货信息
DateUtil
.
formatDateTime
(
endTime
),
orders
.
size
(),
mergeList
.
size
(),
beginPageNo
.
get
());
List
<
WdtSwapOrder
>
swapOrders
=
new
ArrayList
<>();
List
<
WdtSwapOrderDetail
>
swapOrderDetail
=
new
ArrayList
<>();
refundOrders
.
forEach
(
order
->
{
detailDto
.
setDetailInfo
(
orders
.
size
(),
mergeList
.
size
(),
beginPageNo
.
get
(),
wangdiantongQueryDto
.
getTotalCount
(),
batchNo
,
endTime
,
startTime
);
if
(
ObjectUtils
.
isNotEmpty
(
order
.
getSwapOrder
()))
{
swapOrders
.
add
(
order
.
getSwapOrder
());
swapOrderDetail
.
addAll
(
order
.
getSwapOrder
().
getSwapOrderDetailList
());
}
});
wdtSwapOrderDao
.
saveOrUpdateBatch
(
swapOrders
);
wdtSwapOrderDetailDao
.
saveOrUpdateBatch
(
swapOrderDetail
);
// 金额明细
List
<
WdtRefundAmountDetail
>
amountDetailList
=
new
ArrayList
<>();
refundOrders
.
forEach
(
order
->
{
if
(
ObjectUtils
.
isNotEmpty
(
order
.
getAmountDetailList
()))
{
amountDetailList
.
addAll
(
order
.
getAmountDetailList
());
}
});
amountDetailDao
.
saveOrUpdateBatch
(
amountDetailList
);
log
.
info
(
"插入订单和订单详情完成,批次{}开始时间{},结束时间{},退货订单数量:{},详情数量:{},下一次开始页数:{}"
,
batchNo
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
endTime
),
refundOrders
.
size
(),
refundOrderDetails
.
size
(),
detailDto
.
getPageNo
());
String
remark
=
String
.
format
(
"退货订单数量:%s,详情数量:%s,换货订单数量%s,换货详情数量%s,金额明细数量%s"
,
refundOrders
.
size
(),
refundOrderDetails
.
size
(),
swapOrders
.
size
(),
swapOrderDetail
.
size
(),
amountDetailList
.
size
());
detailDto
.
setDetailInfo
(
method
,
remark
,
syncType
,
refundOrders
.
size
(),
refundOrderDetails
.
size
(),
wangdiantongQueryDto
.
getTotalCount
(),
batchNo
,
endTime
,
startTime
);
orderLogInfoDao
.
insert
(
detailDto
);
orderLogInfoDao
.
insert
(
detailDto
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
detailDto
.
setCode
(
HttpStatus
.
HTTP_INTERNAL_ERROR
);
detailDto
.
setCode
(
HttpStatus
.
HTTP_INTERNAL_ERROR
);
detailDto
.
setMessage
(
e
.
toString
());
detailDto
.
setMessage
(
e
.
toString
());
log
.
error
(
e
.
getMessage
(),
e
);
log
.
error
(
e
.
getMessage
(),
e
);
...
@@ -300,48 +318,71 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
...
@@ -300,48 +318,71 @@ public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
return
detailDto
;
return
detailDto
;
}
}
/**
* 修改直播间类型
*
* @param startTime
* @param endTime
* @return
*/
@Override
public
SyncOrderDetailDto
updateZbjType
(
Date
startTime
,
Date
endTime
)
{
// 循环查询订单
return
null
;
}
private
void
setupTimeRange
(
Date
[]
startTime
,
Date
[]
endTime
,
Integer
syncType
,
AtomicInteger
beginPageNo
)
{
/**
* 设置开始时间和结束时间
* @param detailDto
* @param syncType
* @param interval
* @param method
*/
private
void
setupTimeRange
(
SyncOrderDetailDto
detailDto
,
Integer
syncType
,
Integer
interval
,
String
method
)
{
Date
latestTime
=
null
;
// startTime 为空,默认是定时任务调用
// startTime 为空,默认是定时任务调用
if
(
ObjectUtils
.
isEmpty
(
startTime
[
0
]
))
{
if
(
ObjectUtils
.
isEmpty
(
detailDto
.
getStartTime
()
))
{
// 继续下一页的标识 pageNo =-1 标识终止分页 pageNo >0 标识继续分页
// 继续下一页的标识 pageNo =-1 标识终止分页 pageNo >0 标识继续分页
boolean
nextPageFlag
=
true
;
boolean
nextPageFlag
=
true
;
Date
latestTime
=
null
;
// 查询最新的采集时间
// 查询最新的采集时间
CollectOrderLogDto
collectOrderLog
=
orderLogInfoDao
.
selectOrderSyncLatest
(
syncType
);
CollectOrderLogDto
collectOrderLog
=
orderLogInfoDao
.
selectOrderSyncLatest
(
syncType
,
method
);
if
(
ObjectUtils
.
isNotEmpty
(
collectOrderLog
))
{
if
(
ObjectUtils
.
isNotEmpty
(
collectOrderLog
))
{
latestTime
=
collectOrderLog
.
getLatestTime
();
latestTime
=
collectOrderLog
.
getLatestTime
();
Integer
pageNoExist
=
collectOrderLog
.
getPageNo
();
Integer
pageNoExist
=
collectOrderLog
.
getPageNo
();
beginPageNo
.
set
(
ObjectUtil
.
isNotEmpty
(
pageNoExist
)
&&
pageNoExist
>
0
?
collectOrderLog
.
getPageNo
()
:
0
);
nextPageFlag
=
beginPageNo
.
get
()
>
0
;
}
else
{
// 默认上个月的第一天 00:00:00
startTime
[
0
]
=
DateUtil
.
beginOfDay
(
DateUtil
.
beginOfMonth
(
DateUtil
.
lastMonth
()));
}
if
(
nextPageFlag
)
{
detailDto
.
setPageNo
(
ObjectUtil
.
isNotEmpty
(
pageNoExist
)
&&
pageNoExist
>
0
?
collectOrderLog
.
getPageNo
()
:
0
);
startTime
[
0
]
=
DateUtils
.
addMinutes
(
latestTime
,
-
60
);
nextPageFlag
=
detailDto
.
getPageNo
()
>
0
;
if
(
nextPageFlag
)
{
detailDto
.
setStartTime
(
collectOrderLog
.
getStartTime
());
detailDto
.
setEndTime
(
collectOrderLog
.
getEndTime
());
}
else
{
// 调用查询旺店通接口api 获取最新日期前的一个小时
detailDto
.
setStartTime
(
DateUtils
.
addMinutes
(
latestTime
,
-
5
));
detailDto
.
setEndTime
(
DateUtils
.
addMinutes
(
detailDto
.
getStartTime
(),
interval
));
}
}
else
{
}
else
{
// 调用查询旺店通接口api 获取最新日期前的一个小时
// 默认上个月的第一天 00:00:00
startTime
[
0
]
=
DateUtils
.
addMinutes
(
latestTime
,
-
3
);
detailDto
.
setStartTime
(
DateUtil
.
beginOfDay
(
DateUtil
.
beginOfMonth
(
DateUtil
.
lastMonth
())));
detailDto
.
setEndTime
(
DateUtils
.
addMinutes
(
detailDto
.
getStartTime
(),
interval
));
}
}
}
}
if
(
ObjectUtils
.
isEmpty
(
endTime
[
0
]))
{
latestTime
=
detailDto
.
getEndTime
();
endTime
[
0
]
=
DateUtils
.
addMinutes
(
startTime
[
0
],
60
);
detailDto
.
setLatestTime
(
latestTime
);
}
}
}
private
boolean
validateStartTime
(
Date
startTime
,
Date
endTime
,
String
batchN
o
)
{
private
boolean
validateStartTime
(
SyncOrderDetailDto
detailDt
o
)
{
Date
currentLatest
=
DateUtils
.
addHours
(
new
Date
(),
-
2
);
Date
currentLatest
=
DateUtils
.
addHours
(
new
Date
(),
-
2
);
if
(
currentLatest
.
compareTo
(
startTime
)
<
0
)
{
if
(
currentLatest
.
compareTo
(
detailDto
.
getEndTime
()
)
<
0
)
{
SyncOrderDetailDto
detailDto
=
new
SyncOrderDetailDto
();
//
SyncOrderDetailDto detailDto = new SyncOrderDetailDto();
detailDto
.
setTotalCount
(
0
);
detailDto
.
setTotalCount
(
0
);
detailDto
.
setBatchNo
(
batchNo
);
//
detailDto.setBatchNo(batchNo);
detailDto
.
setStartTime
(
startTime
);
//
detailDto.setStartTime(startTime);
detailDto
.
setEndTime
(
endTime
);
//
detailDto.setEndTime(endTime);
String
message
=
String
.
format
(
"
开始时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
startTime
),
DateUtil
.
formatDateTime
(
currentLatest
));
String
message
=
String
.
format
(
"
结束时间%s不能大于当前时间%s"
,
DateUtil
.
formatDateTime
(
detailDto
.
getEndTime
()
),
DateUtil
.
formatDateTime
(
currentLatest
));
detailDto
.
setMessage
(
message
);
detailDto
.
setMessage
(
message
);
log
.
warn
(
message
);
log
.
warn
(
message
);
return
false
;
return
false
;
...
...
src/main/java/com/sfa/job/util/WangdiantongUtil.java
浏览文件 @
6b140908
...
@@ -15,7 +15,6 @@ import org.springframework.util.DigestUtils;
...
@@ -15,7 +15,6 @@ import org.springframework.util.DigestUtils;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.atomic.AtomicInteger
;
@Slf4j
@Slf4j
@Component
@Component
...
@@ -38,10 +37,11 @@ public class WangdiantongUtil {
...
@@ -38,10 +37,11 @@ public class WangdiantongUtil {
public
WangdiantongUtil
(
WangdiantongConfig
wangdiantongConfig
)
{
public
WangdiantongUtil
(
WangdiantongConfig
wangdiantongConfig
)
{
this
.
wangdiantongConfig
=
wangdiantongConfig
;
this
.
wangdiantongConfig
=
wangdiantongConfig
;
}
}
/**
/**
* 卖家账号/接口账号/盐/接口名称
* 卖家账号/接口账号/盐/接口名称
*/
*/
public
WangdiantongQueryDto
queryWithDetail
(
HashMap
<
String
,
Object
>
params
,
AtomicInteger
beginPageNo
,
String
method
)
{
public
WangdiantongQueryDto
queryWithDetail
(
HashMap
<
String
,
Object
>
params
,
Integer
beginPageNo
,
String
method
)
{
WangdiantongQueryDto
wangdiantongQueryDto
=
new
WangdiantongQueryDto
();
WangdiantongQueryDto
wangdiantongQueryDto
=
new
WangdiantongQueryDto
();
JSONArray
allArray
=
new
JSONArray
();
JSONArray
allArray
=
new
JSONArray
();
Integer
totalCount
=
0
;
Integer
totalCount
=
0
;
...
@@ -49,7 +49,7 @@ public class WangdiantongUtil {
...
@@ -49,7 +49,7 @@ public class WangdiantongUtil {
// 最大处理量,超过了,不再查询
// 最大处理量,超过了,不再查询
int
maxDealCount
=
1000
;
int
maxDealCount
=
1000
;
int
size
=
0
;
int
size
=
0
;
int
pageNo
=
beginPageNo
.
get
();
int
pageNo
=
beginPageNo
.
intValue
();
// 出现了查询的分页数量不足的情况
// 出现了查询的分页数量不足的情况
int
maxPage
=
0
;
int
maxPage
=
0
;
do
{
do
{
...
@@ -106,11 +106,11 @@ public class WangdiantongUtil {
...
@@ -106,11 +106,11 @@ public class WangdiantongUtil {
}
while
(
size
<
maxDealCount
&&
pageNo
<=
maxPage
);
}
while
(
size
<
maxDealCount
&&
pageNo
<=
maxPage
);
if
(
pageNo
>=
maxPage
)
{
if
(
pageNo
>=
maxPage
)
{
// 已经到最后一页了,设置成-1,表示已经处理完了,不再查询
// 已经到最后一页了,设置成-1,表示已经处理完了,不再查询
beginPageNo
.
set
(-
1
)
;
beginPageNo
=
-
1
;
}
else
{
}
else
{
beginPageNo
.
set
(
pageNo
)
;
beginPageNo
=
pageNo
;
}
}
wangdiantongQueryDto
.
setNextBeginPageNo
(
p
ageNo
);
wangdiantongQueryDto
.
setNextBeginPageNo
(
beginP
ageNo
);
wangdiantongQueryDto
.
setResult
(
allArray
);
wangdiantongQueryDto
.
setResult
(
allArray
);
wangdiantongQueryDto
.
setTotalCount
(
totalCount
);
wangdiantongQueryDto
.
setTotalCount
(
totalCount
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
src/main/resources/mapper/order/WdtRefundAmountDetailMapper.xml
0 → 100644
浏览文件 @
6b140908
<?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.WdtRefundAmountDetailMapper"
>
<insert
id=
"saveOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_refund_amount_detail (
rec_id,
refund_id,
refund_type,
is_return,
refund_amount,
receive_amount,
is_guarantee,
account_id,
pay_account,
account_name,
account_bank,
is_auto,
remark
)
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.recId},
#{item.refundId},
#{item.refundType},
#{item.isReturn},
#{item.refundAmount},
#{item.receiveAmount},
#{item.isGuarantee},
#{item.accountId},
#{item.payAccount},
#{item.accountName},
#{item.accountBank},
#{item.isAuto},
#{item.remark}
)
</foreach>
ON DUPLICATE KEY UPDATE
refund_id = VALUES(refund_id),
refund_type = VALUES(refund_type),
is_return = VALUES(is_return),
refund_amount = VALUES(refund_amount),
receive_amount = VALUES(receive_amount),
is_guarantee = VALUES(is_guarantee),
account_id = VALUES(account_id),
pay_account = VALUES(pay_account),
account_name = VALUES(account_name),
account_bank = VALUES(account_bank),
is_auto = VALUES(is_auto),
remark = VALUES(remark)
</insert>
</mapper>
src/main/resources/mapper/order/WdtSwapOrderDetailMapper.xml
浏览文件 @
6b140908
<!DOCTYPE mapper
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtSwapOrderDetailMapper"
>
<mapper
namespace=
"com.sfa.job.domain.order.mapper.WdtRefundOrderDetailMapper"
>
<insert
id=
"saveOrUpdateBatch"
parameterType=
"java.util.List"
>
<insert
id=
"saveOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_swap_order_detail (
INSERT INTO wdt_swap_order_detail (
oid, swap_order_tid, target_type, target_id, defect, goods_name, goods_no,
oid,
spec_name, spec_code, merchant_no, price, total_amount, num, remark
target_type,
target_id,
defect,
goods_name,
goods_no,
spec_name,
spec_code,
merchant_no,
price,
total_amount,
num,
remark
)
)
VALUES
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
(
#{item.oid},
#{item.oid},
#{item.swapOrderTid},
#{item.targetType},
#{item.targetType},
#{item.targetId},
#{item.targetId},
#{item.defect},
#{item.defect},
...
@@ -28,6 +37,7 @@
...
@@ -28,6 +37,7 @@
)
)
</foreach>
</foreach>
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
oid = VALUES(oid),
target_type = VALUES(target_type),
target_type = VALUES(target_type),
target_id = VALUES(target_id),
target_id = VALUES(target_id),
defect = VALUES(defect),
defect = VALUES(defect),
...
...
src/main/resources/mapper/order/WdtSwapOrderMapper.xml
浏览文件 @
6b140908
...
@@ -4,15 +4,24 @@
...
@@ -4,15 +4,24 @@
<insert
id=
"saveOrUpdateBatch"
parameterType=
"java.util.List"
>
<insert
id=
"saveOrUpdateBatch"
parameterType=
"java.util.List"
>
INSERT INTO wdt_swap_order (
INSERT INTO wdt_swap_order (
tid, refund_id, shop_no, shop_name, warehouse_no, shop_id, warehouse_id,
tid,
swap_province, swap_city, swap_area, swap_district, swap_logistics_id,
shop_no,
post_amount, other_amount
shop_name,
warehouse_no,
shop_id,
warehouse_id,
swap_province,
swap_city,
swap_area,
swap_district,
swap_logistics_id,
post_amount,
other_amount
)
)
VALUES
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
(
#{item.tid},
#{item.tid},
#{item.refundId},
#{item.shopNo},
#{item.shopNo},
#{item.shopName},
#{item.shopName},
#{item.warehouseNo},
#{item.warehouseNo},
...
@@ -28,6 +37,7 @@
...
@@ -28,6 +37,7 @@
)
)
</foreach>
</foreach>
ON DUPLICATE KEY UPDATE
ON DUPLICATE KEY UPDATE
tid = VALUES(tid),
shop_no = VALUES(shop_no),
shop_no = VALUES(shop_no),
shop_name = VALUES(shop_name),
shop_name = VALUES(shop_name),
warehouse_no = VALUES(warehouse_no),
warehouse_no = VALUES(warehouse_no),
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论