Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
D
dc-java
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
huluobin
dc-java
Commits
099b594d
Commit
099b594d
authored
Aug 01, 2019
by
wutong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CRM退款与订单关联部分修改
parent
042ee057
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
49 deletions
+28
-49
RefundLinkOrderJob.java
...d/src/main/java/com/bailuntec/job/RefundLinkOrderJob.java
+27
-27
OrderSyncJob.java
...s-order/src/main/java/com/bailuntec/job/OrderSyncJob.java
+1
-22
No files found.
data-base/base-sync-crm-refund/src/main/java/com/bailuntec/job/RefundLinkOrderJob.java
View file @
099b594d
...
...
@@ -2,21 +2,16 @@ package com.bailuntec.job;
import
com.bailuntec.domain.entity.DcBaseCrmRefund
;
import
com.bailuntec.domain.entity.DcBaseOmsOrder
;
import
com.bailuntec.domain.entity.DcBaseOmsSku
;
import
com.bailuntec.domain.entity.JobPointLog
;
import
com.bailuntec.domain.example.DcBaseCrmRefundExample
;
import
com.bailuntec.domain.example.DcBaseOmsOrderExample
;
import
com.bailuntec.domain.example.DcBaseOmsSkuExample
;
import
com.bailuntec.mapper.DcBaseCrmRefundMapper
;
import
com.bailuntec.mapper.DcBaseOmsOrderMapper
;
import
com.bailuntec.mapper.DcBaseOmsSkuMapper
;
import
com.bailuntec.support.PointJob
;
import
com.bailuntec.utils.SessionUtil
;
import
com.dangdang.ddframe.job.api.ShardingContext
;
import
lombok.extern.slf4j.Slf4j
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.util.List
;
@Slf4j
...
...
@@ -41,49 +36,54 @@ public class RefundLinkOrderJob extends PointJob {
}
if
(
totalPage
>
0
)
{
for
(
int
i
=
0
;
i
<=
totalPage
;
i
++)
{
List
<
DcBaseCrmRefund
>
dcBaseCrmRefundList
=
null
;
try
{
DcBaseCrmRefundMapper
refundMapper1
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseCrmRefundMapper
.
class
);
DcBaseOmsSkuMapper
omsSkuMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsSkuMapper
.
class
);
DcBaseOmsOrderMapper
omsOrderMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsOrderMapper
.
class
);
List
<
DcBaseCrmRefund
>
dcBaseCrmRefundList
=
refundMapper1
.
selectByExample
(
DcBaseCrmRefundExample
.
newAndCreateCriteria
().
andLinkedEqualTo
(
false
).
example
().
limit
(
i
*
jobPointLog
.
getPageSize
(),
jobPointLog
.
getPageSize
()));
if
(
dcBaseCrmRefundList
!=
null
&&
dcBaseCrmRefundList
.
size
()
>
0
)
{
for
(
DcBaseCrmRefund
dcBaseCrmRefund
:
dcBaseCrmRefundList
)
{
log
.
warn
(
dcBaseCrmRefund
.
getOriginOrderId
()
+
"------"
+
dcBaseCrmRefund
.
getBailunAccountId
()
+
"------"
+
dcBaseCrmRefund
.
getBailunSku
());
DcBaseOmsOrder
dcBaseOmsOrder
=
null
;
dcBaseCrmRefundList
=
refundMapper1
.
selectByExample
(
DcBaseCrmRefundExample
.
newAndCreateCriteria
().
andLinkedEqualTo
(
false
).
example
().
limit
(
i
*
jobPointLog
.
getPageSize
(),
jobPointLog
.
getPageSize
()));
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"Mybatis操作DB失败"
,
e
);
}
finally
{
SessionUtil
.
closeSession
();
}
if
(
dcBaseCrmRefundList
!=
null
&&
dcBaseCrmRefundList
.
size
()
>
0
)
{
for
(
DcBaseCrmRefund
dcBaseCrmRefund
:
dcBaseCrmRefundList
)
{
log
.
warn
(
dcBaseCrmRefund
.
getOriginOrderId
()
+
"------"
+
dcBaseCrmRefund
.
getBailunAccountId
()
+
"------"
+
dcBaseCrmRefund
.
getBailunSku
());
DcBaseOmsOrder
dcBaseOmsOrder
=
null
;
try
{
DcBaseOmsOrderMapper
omsOrderMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsOrderMapper
.
class
);
/**
* 这里这么switch
* 是因为CRM的单号和OMS的订单号规则不一样, 取的不一样的字段
* 新平台需要自己去查
*/
switch
(
dcBaseCrmRefund
.
getPlatformType
().
toUpperCase
())
{
case
"EBAY"
:
// dcBaseOmsSku = omsSkuMapper.selectOneByExample(DcBaseOmsSkuExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andTransactionIdEqualTo(dcBaseCrmRefund.getOriginOrderId()).andBailunSkuEqualTo(dcBaseCrmRefund.getBailunSku()).example());
dcBaseOmsOrder
=
omsOrderMapper
.
selectOneByExample
(
DcBaseOmsOrderExample
.
newAndCreateCriteria
().
andBailunAccountIdEqualTo
(
dcBaseCrmRefund
.
getBailunAccountId
()).
andTransactionIdEqualTo
(
dcBaseCrmRefund
.
getOriginOrderId
()).
example
());
break
;
case
"WALMART"
:
// dcBaseOmsSku = omsSkuMapper.selectOneByExample(DcBaseOmsSkuExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andBuyerIdEqualTo(dcBaseCrmRefund.getOriginOrderId()).andBailunSkuEqualTo(dcBaseCrmRefund.getBailunSku()).example());
dcBaseOmsOrder
=
omsOrderMapper
.
selectOneByExample
(
DcBaseOmsOrderExample
.
newAndCreateCriteria
().
andBailunAccountIdEqualTo
(
dcBaseCrmRefund
.
getBailunAccountId
()).
andBuyerIdEqualTo
(
dcBaseCrmRefund
.
getOriginOrderId
()).
example
());
break
;
default
:
// dcBaseOmsSku = omsSkuMapper.selectOneByExample(DcBaseOmsSkuExample.newAndCreateCriteria().andBailunAccountIdEqualTo(dcBaseCrmRefund.getBailunAccountId()).andOriginOrderIdEqualTo(dcBaseCrmRefund.getOriginOrderId()).andBailunSkuEqualTo(dcBaseCrmRefund.getBailunSku()).example());
dcBaseOmsOrder
=
omsOrderMapper
.
selectOneByExample
(
DcBaseOmsOrderExample
.
newAndCreateCriteria
().
andBailunAccountIdEqualTo
(
dcBaseCrmRefund
.
getBailunAccountId
()).
andOriginOrderIdEqualTo
(
dcBaseCrmRefund
.
getOriginOrderId
()).
example
());
}
if
(
dcBaseOmsOrder
!=
null
)
{
//利润要减去退款
//利润率要重算
dcBaseOmsOrder
.
setAmountRefund
(
dcBaseOmsOrder
.
getAmountRefund
()
!=
null
?
dcBaseOmsOrder
.
getAmountRefund
().
add
(
dcBaseCrmRefund
.
getAmountRefund
())
:
dcBaseCrmRefund
.
getAmountRefund
());
dcBaseOmsOrder
.
setRefundTime
(
dcBaseCrmRefund
.
getRefundTime
());
BigDecimal
profit
=
dcBaseOmsOrder
.
getProfitTotal
().
subtract
(
dcBaseOmsOrder
.
getAmountRefund
().
multiply
(
dcBaseOmsOrder
.
getSellerOrderExchangeRate
())).
setScale
(
3
,
RoundingMode
.
HALF_EVEN
);
dcBaseOmsOrder
.
setProfitTotal
(
profit
);
BigDecimal
amountSales
=
dcBaseOmsOrder
.
getAmountSales
().
multiply
(
dcBaseOmsOrder
.
getSellerOrderExchangeRate
());
dcBaseOmsOrder
.
setProfitRate
(
amountSales
.
compareTo
(
BigDecimal
.
ZERO
)
==
0
?
BigDecimal
.
ZERO
:
profit
.
divide
(
amountSales
,
5
,
RoundingMode
.
HALF_EVEN
));
dcBaseOmsOrder
.
setBailunRefundStatus
(
"TotalRefund"
);
dcBaseCrmRefund
.
setLinked
(
true
);
DcBaseCrmRefundMapper
refundMapper2
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseCrmRefundMapper
.
class
);
DcBaseOmsOrderMapper
omsOrderMapper2
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsOrderMapper
.
class
);
DcBaseCrmRefundMapper
refundMapper2
=
SessionUtil
.
get
Transtion
Session
().
getMapper
(
DcBaseCrmRefundMapper
.
class
);
DcBaseOmsOrderMapper
omsOrderMapper2
=
SessionUtil
.
get
Transtion
Session
().
getMapper
(
DcBaseOmsOrderMapper
.
class
);
omsOrderMapper2
.
updateByPrimaryKeySelective
(
dcBaseOmsOrder
);
refundMapper2
.
updateByPrimaryKeySelective
(
dcBaseCrmRefund
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
log
.
error
(
"退款与订单关联失败"
,
e
);
}
finally
{
SessionUtil
.
closeSession
();
SessionUtil
.
closeTranstionSession
();
}
}
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
"Mybatis操作DB失败"
,
e
);
}
finally
{
SessionUtil
.
closeSession
();
}
}
}
...
...
data-base/base-sync-oms-order/src/main/java/com/bailuntec/job/OrderSyncJob.java
View file @
099b594d
...
...
@@ -255,7 +255,7 @@ public class OrderSyncJob extends PointJob {
//SKU总收入
BigDecimal
skuAmountTotal
=
bailunSkuStructure
.
getSkuCostRatio
().
multiply
(
dcBaseOmsOrder
.
getAmountTotal
()).
setScale
(
5
,
RoundingMode
.
HALF_EVEN
);
//SKU退款
BigDecimal
skuAmountRefund
=
bailunSkuStructure
.
getSkuCostRatio
().
multiply
(
dcBaseOmsOrder
.
getAmountRefund
()).
setScale
(
5
,
RoundingMode
.
HALF_EVEN
);
//
BigDecimal skuAmountRefund = bailunSkuStructure.getSkuCostRatio().multiply(dcBaseOmsOrder.getAmountRefund()).setScale(5, RoundingMode.HALF_EVEN);
//SKU商品收入
BigDecimal
skuAmountProduct
=
bailunSkuStructure
.
getSkuCostRatio
().
multiply
(
dcBaseOmsOrder
.
getAmountProduct
()).
setScale
(
5
,
RoundingMode
.
HALF_EVEN
);
BigDecimal
skuAmountProductRMB
=
bailunSkuStructure
.
getSkuCostRatio
().
multiply
(
dcBaseOmsOrder
.
getAmountProduct
()).
multiply
(
dcBaseOmsOrder
.
getSellerOrderExchangeRate
()).
setScale
(
5
,
RoundingMode
.
HALF_EVEN
);
...
...
@@ -330,7 +330,6 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsSku
.
setCostPromotion
(
skuCostPromotion
.
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
));
dcBaseOmsSku
.
setAmountSales
(
skuAmountSales
.
subtract
(
skuCostPromotion
).
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
));
dcBaseOmsSku
.
setAmountShipping
(
skuAmountShipping
.
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
));
dcBaseOmsSku
.
setAmountRefund
(
skuAmountRefund
.
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
));
//单个SKU的销售额
unitSkuAmountSalesRMB
=
skuAmountSalesRMB
.
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
);
...
...
@@ -601,8 +600,6 @@ public class OrderSyncJob extends PointJob {
DcBaseOmsOrderMapper
mapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsOrderMapper
.
class
);
mapper
.
logicDeleteOmsSku
(
dcBaseOmsOrder
);
mapper
.
logicDeleteOmsPick
(
dcBaseOmsOrder
);
// DcBaseCrmRefundMapper crmRefundMapper = SessionUtil.getSession().getMapper(DcBaseCrmRefundMapper.class);
// crmRefundMapper.updateLinked(dcBaseOmsOrder.getOriginOrderId(), dcBaseOmsOrder.getBailunAccountId());
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
ExceptionUtil
.
transform
(
e
),
e
);
}
finally
{
...
...
@@ -993,17 +990,6 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsOrder
.
setAmountRefund
(
BigDecimal
.
ZERO
);
//销售额 - 需要计算的费用给个默认值
dcBaseOmsOrder
.
setAmountSales
(
BigDecimal
.
ZERO
);
dcBaseOmsOrder
.
setBailunRefundStatus
(
omsResult
.
getRefundInfo
().
getRefundStatus
());
dcBaseOmsOrder
.
setRefundObj
(
omsResult
.
getRefundInfo
().
getRefundObj
());
dcBaseOmsOrder
.
setRefundReferenceId
(
omsResult
.
getRefundInfo
().
getRefundReferenceId
());
/*if (omsResult.getRefundInfo() !=null) {
dcBaseOmsOrder.setRefundTime(omsResult.getRefundInfo().getRefundTime());
dcBaseOmsOrder.setRefundType(omsResult.getRefundInfo().getRefundType());
if (omsResult.getRefundInfo().getRefundAmount() != null) {
dcBaseOmsOrder.setAmountRefund(omsResult.getRefundInfo().getRefundAmount().getAmount() != null? omsResult.getRefundInfo().getRefundAmount().getAmount() : BigDecimal.ZERO);
}
}*/
}
/**
...
...
@@ -1115,13 +1101,6 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsSku
.
setCostLogistics
(
BigDecimal
.
ZERO
);
//如果是 FBA订单1.检查FBA费用是否异常 2.
dcBaseOmsSku
.
setBailunSkuQuantityShipped
(
0
);
dcBaseOmsSku
.
setBailunRefundStatus
(
dcBaseOmsOrder
.
getBailunRefundStatus
());
dcBaseOmsSku
.
setRefundReferenceId
(
dcBaseOmsOrder
.
getRefundReferenceId
());
dcBaseOmsSku
.
setRefundObj
(
dcBaseOmsOrder
.
getRefundObj
());
/*
dcBaseOmsSku.setRefundTime(dcBaseOmsOrder.getRefundTime());
dcBaseOmsSku.setAmountRefund(dcBaseOmsOrder.getAmountRefund());
dcBaseOmsSku.setRefundType(dcBaseOmsOrder.getRefundType());*/
dcBaseOmsSku
.
setHasFbaS
(
dcBaseOmsOrder
.
getHasFbaS
());
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment