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
4afea25a
Commit
4afea25a
authored
Nov 13, 2019
by
yinyong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
沃尔玛平台销售额统计总数,MARKETING平台、耗材仓产品成本和头程费置为0。
parent
018b88c4
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
5 deletions
+24
-5
Constant.java
...src/main/java/com/bailuntec/domain/constant/Constant.java
+1
-0
OrderSyncJob.java
...s-order/src/main/java/com/bailuntec/job/OrderSyncJob.java
+20
-3
job.properties
...ase/base-sync-oms-order/src/main/resources/job.properties
+3
-2
No files found.
data-base/base-sync-oms-order/src/main/java/com/bailuntec/domain/constant/Constant.java
View file @
4afea25a
...
...
@@ -13,6 +13,7 @@ public interface Constant {
String
OVERSEAS_WAREHOUSE
=
"海外仓"
;
String
FBA_WAREHOUSE
=
"FBA仓"
;
String
DOMESTIC_WAREHOUSE
=
"国内仓"
;
String
CONSUMABLES_WAREHOUSE
=
"耗材仓"
;
String
MANUAL_ORDER
=
"手工单"
;
BigDecimal
NO_DOMESTIC_HANDLE_FEE
=
BigDecimal
.
valueOf
(
1.2
);
//海外仓,FBA仓每单处理费1.2元
BigDecimal
GENERAL_DOMESTIC_HANDLE_FEE
=
BigDecimal
.
valueOf
(
2
);
//国内仓普货类每单处理费2元
...
...
data-base/base-sync-oms-order/src/main/java/com/bailuntec/job/OrderSyncJob.java
View file @
4afea25a
...
...
@@ -256,7 +256,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal
productAmount
=
dcBaseOmsOrder
.
getAmountProduct
().
compareTo
(
BigDecimal
.
ZERO
)
==
1
?
dcBaseOmsOrder
.
getAmountProduct
()
:
dcBaseOmsOrder
.
getAmountTotal
();
dcBaseOmsOrder
.
setAmountProduct
(
productAmount
);
//部分订单 AmountProduct(产品金额)字段没值或等于0, 就取AmountTotal(商品总收入)
//销售额统一改为 销售额=产品金额+运费-促销
if
(
omsResult
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Aliexpress
.
value
()))
{
if
(
omsResult
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Aliexpress
.
value
())
||
omsResult
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Walmart
.
value
())
)
{
dcBaseOmsOrder
.
setAmountSales
(
omsResult
.
getOrderCharge
().
getAmountTotal
().
getAmount
().
subtract
(
dcBaseOmsOrder
.
getCostPromotion
()));
}
else
{
dcBaseOmsOrder
.
setAmountSales
(
productAmount
.
add
(
dcBaseOmsOrder
.
getAmountShipping
()).
subtract
(
dcBaseOmsOrder
.
getCostPromotion
()));
...
...
@@ -283,6 +283,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal
totalAmountPrepaid
=
BigDecimal
.
ZERO
;
BigDecimal
totalProfit
=
BigDecimal
.
ZERO
;
BigDecimal
totalSkuCostLogistics
=
BigDecimal
.
ZERO
;
BigDecimal
totalSkuCostProduct
=
BigDecimal
.
ZERO
;
BigDecimal
totalAmountGeneralCargo
=
BigDecimal
.
ZERO
;
//货值= 售价-物流-平台费, 只有普货才算货值, 不发货也算货值
try
{
DcBaseOmsSkuMapper
omsSkuMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsSkuMapper
.
class
);
...
...
@@ -356,6 +357,8 @@ public class OrderSyncJob extends PointJob {
*/
BigDecimal
quantityOrderdDecimal
=
BigDecimal
.
valueOf
(
bailunSkuStructure
.
getSkuQuantityOrderd
());
BigDecimal
bailunSkuQuantityShippedDecimal
=
BigDecimal
.
valueOf
(
dcBaseOmsSku
.
getBailunSkuQuantityShipped
());
//MARKETING平台 如果是耗材仓的,产品成本不参与利润统计
totalSkuCostProduct
=
caculateCostProduct
(
dcBaseWarehouse
,
dcBaseOmsSku
,
bailunSkuStructure
,
bailunSkuQuantityShippedDecimal
,
totalSkuCostProduct
,
dcBaseOmsOrder
);
BigDecimal
rmbCost
=
BigDecimal
.
ZERO
;
BigDecimal
skuAmountGeneralCargo
=
BigDecimal
.
ZERO
;
BigDecimal
costLogistics
=
BigDecimal
.
ZERO
;
...
...
@@ -394,7 +397,7 @@ public class OrderSyncJob extends PointJob {
unitSkuAmountSalesRMB
=
skuAmountSalesRMB
.
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
);
//MARKETING平台 如果是耗材仓的,产品成本和头程费不参与利润统计
if
(
dcBaseOmsOrder
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Marketing
.
value
())
&&
(
"GZHCCK"
.
equals
(
dcBaseWarehouse
.
getWarehouseCode
())
||
"QYHCCK"
.
equals
(
dcBaseWarehouse
.
getWarehouseCode
()
)))
{
if
(
dcBaseOmsOrder
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Marketing
.
value
())
&&
dcBaseWarehouse
!=
null
&&
Constant
.
CONSUMABLES_WAREHOUSE
.
equals
(
dcBaseWarehouse
.
getHqType
(
)))
{
//单个SKU的支出
rmbCost
=
dcBaseOmsSku
.
getCostHandleBailun
()
//处理费
.
add
(
skuCostPlatformFeeRMB
.
divide
(
quantityOrderdDecimal
,
5
,
RoundingMode
.
HALF_EVEN
))
//平台费
...
...
@@ -449,6 +452,7 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsOrder
.
setCostFirst
(
totalCostFirst
);
dcBaseOmsOrder
.
setCostLogistics
(
totalSkuCostLogistics
);
dcBaseOmsOrder
.
setAmountGeneralCargo
(
totalAmountGeneralCargo
);
dcBaseOmsOrder
.
setCostProduct
(
totalSkuCostProduct
);
/*
* OMS过来的详细费用不用动
* 这边处理新增了
...
...
@@ -529,7 +533,11 @@ public class OrderSyncJob extends PointJob {
* @return
*/
private
BigDecimal
caculateCostFirst
(
DcBaseWarehouse
dcBaseWarehouse
,
DcBaseOmsSku
dcBaseOmsSku
,
BailunSkuStructure
bailunSkuStructure
,
BigDecimal
totalCostFirst
,
DcBaseOmsOrder
dcBaseOmsOrder
)
{
if
(
dcBaseWarehouse
!=
null
&&
!
dcBaseWarehouse
.
getHqType
().
equals
(
Constant
.
DOMESTIC_WAREHOUSE
)
&&
dcBaseOmsSku
.
getBailunSkuQuantityShipped
()
>
0
)
{
//MARKETING平台 如果是耗材仓的,产品成本和头程费不参与利润统计
if
(
dcBaseOmsOrder
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Marketing
.
value
())
&&
dcBaseWarehouse
!=
null
&&
Constant
.
CONSUMABLES_WAREHOUSE
.
equals
(
dcBaseWarehouse
.
getHqType
()))
{
dcBaseOmsSku
.
setCostFirst
(
BigDecimal
.
ZERO
);
}
else
if
(
dcBaseWarehouse
!=
null
&&
!
dcBaseWarehouse
.
getHqType
().
equals
(
Constant
.
DOMESTIC_WAREHOUSE
)
&&
dcBaseOmsSku
.
getBailunSkuQuantityShipped
()
>
0
)
{
//如果存在不更新头程费
DcBaseOmsOrderMapper
omsOrderMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsOrderMapper
.
class
);
DcBaseOmsOrder
dcBaseOmsOrder1
=
omsOrderMapper
.
selectOneByExample
(
DcBaseOmsOrderExample
.
newAndCreateCriteria
().
andOriginOrderIdEqualTo
(
dcBaseOmsOrder
.
getOriginOrderId
()).
andBailunAccountIdEqualTo
(
dcBaseOmsOrder
.
getBailunAccountId
()).
example
());
...
...
@@ -562,6 +570,15 @@ public class OrderSyncJob extends PointJob {
return
totalCostFirst
;
}
private
BigDecimal
caculateCostProduct
(
DcBaseWarehouse
dcBaseWarehouse
,
DcBaseOmsSku
dcBaseOmsSku
,
BailunSkuStructure
bailunSkuStructure
,
BigDecimal
bailunSkuQuantityShippedDecimal
,
BigDecimal
totalSkuCostProduct
,
DcBaseOmsOrder
dcBaseOmsOrder
)
{
if
(
dcBaseOmsOrder
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
Marketing
.
value
())
&&
dcBaseWarehouse
!=
null
&&
Constant
.
CONSUMABLES_WAREHOUSE
.
equals
(
dcBaseWarehouse
.
getHqType
()))
{
dcBaseOmsSku
.
setCostProduct
(
BigDecimal
.
ZERO
);
}
else
{
totalSkuCostProduct
=
totalSkuCostProduct
.
add
(
bailunSkuStructure
.
getBailunSkuUnitPrice
().
multiply
(
bailunSkuQuantityShippedDecimal
));
}
return
totalSkuCostProduct
;
}
private
void
hasS0
(
OmsResult
omsResult
,
DcBaseOmsOrder
dcBaseOmsOrder
)
{
if
(
omsResult
.
getPlatformType
().
toUpperCase
().
equals
(
PlatformType
.
FBA
.
value
())
&&
omsResult
.
getOriginOrderId
().
length
()
>
2
)
{
String
substring
=
omsResult
.
getOriginOrderId
().
substring
(
0
,
2
);
...
...
data-base/base-sync-oms-order/src/main/resources/job.properties
View file @
4afea25a
...
...
@@ -9,7 +9,7 @@ EVENT_RDB_STORAGE_USERNAME=root
EVENT_RDB_STORAGE_PASSWORD
=
#7kfnymAM$Y9-Ntf
ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE
=
data-center
JOB_NAME
=
base-sync-oms-order-coroutine
#
JOB_NAME=base-sync-oms-order
#
JOB_NAME=base-sync-oms-order-coroutine
JOB_NAME
=
base-sync-oms-order
JOB_CRON
=
0/1 * * * * ? *
SHARDING_TOTAL_COUNT
=
1
\ No newline at end of file
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