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
6862872f
Commit
6862872f
authored
May 24, 2019
by
wutong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单修改自产百伦SKU处理费计算规则
parent
9a568e45
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
65 deletions
+42
-65
BailunSkuCumulative.java
...n/java/com/bailuntec/domain/pojo/BailunSkuCumulative.java
+0
-1
OrderSyncJob.java
...s-order/src/main/java/com/bailuntec/job/OrderSyncJob.java
+41
-63
OmsOrderTest.java
...-base/base-sync-oms-order/src/test/java/OmsOrderTest.java
+1
-1
No files found.
data-base/base-sync-oms-order/src/main/java/com/bailuntec/domain/pojo/BailunSkuCumulative.java
View file @
6862872f
...
...
@@ -13,7 +13,6 @@ public class BailunSkuCumulative {
private
BigDecimal
maxSkuLong
;
//最大SKU长
private
BigDecimal
maxSkuWidth
;
//最大SKU宽
private
BigDecimal
maxSkuHight
;
//最大SKU高
private
boolean
hasGeneral
;
//美容类还是普货类, TRUE是普货
private
Integer
totalQuantity
;
//累计销售数量
}
data-base/base-sync-oms-order/src/main/java/com/bailuntec/job/OrderSyncJob.java
View file @
6862872f
...
...
@@ -133,7 +133,8 @@ public class OrderSyncJob extends PointJob {
* 遍历所有百伦SKU(omsResult.getBailunSku())
* 拿到SKU累计信息, 自发货运费按SKU重量比重取
*/
BailunSkuCumulative
bailunSkuCumulative
=
getBailunSkuCumulative
(
omsResult
);
Integer
countSelfProducrSku
=
0
;
//自产SKU
BailunSkuCumulative
bailunSkuCumulative
=
getBailunSkuCumulative
(
omsResult
,
countSelfProducrSku
);
//SKU总个数
dcBaseOmsOrder
.
setQuantityBailunSku
(
bailunSkuCumulative
.
getTotalQuantity
());
//计算每个SKU采购价占总采购价比重(用于摊分SKU售价之类) 以及 每个SKU重量价占总重量的比重
...
...
@@ -199,7 +200,7 @@ public class OrderSyncJob extends PointJob {
* 按规则计算百伦处理费
* 处理费算到订单维度
*/
caculateBailunHandleFee
(
dcBaseOmsOrder
,
bailunSkuCumulative
,
bailunSkuInfoMap
.
get
(
omsResult
.
getBailunSku
().
get
(
0
).
getBailunSku
()).
getDcBaseWarehouse
()
);
caculateBailunHandleFee
(
dcBaseOmsOrder
,
countSelfProducrSku
);
}
/*
* 配货单处理,
...
...
@@ -550,57 +551,34 @@ public class OrderSyncJob extends PointJob {
* 阶梯计费
*
* @param dcBaseOmsOrder
* @param bailunSkuCumulative
* @param dcBaseWarehouse
*/
private
void
caculateBailunHandleFee
(
DcBaseOmsOrder
dcBaseOmsOrder
,
BailunSkuCumulative
bailunSkuCumulative
,
DcBaseWarehouse
dcBaseWarehouse
)
{
if
(
dcBaseWarehouse
!=
null
)
{
if
(
dcBaseWarehouse
.
getHqType
().
equals
(
Constant
.
FBA_WAREHOUSE
)
||
dcBaseWarehouse
.
getHqType
().
equals
(
Constant
.
OVERSEAS_WAREHOUSE
))
{
dcBaseOmsOrder
.
setCostHandleBailun
(
Constant
.
NO_DOMESTIC_HANDLE_FEE
);
}
else
if
(
dcBaseWarehouse
.
getHqType
().
equals
(
Constant
.
DOMESTIC_WAREHOUSE
))
{
if
(
bailunSkuCumulative
.
isHasGeneral
())
{
dcBaseOmsOrder
.
setCostHandleBailun
(
Constant
.
GENERAL_DOMESTIC_HANDLE_FEE
);
}
else
{
switch
(
bailunSkuCumulative
.
getTotalQuantity
())
{
case
1
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
2
));
break
;
case
2
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
3
));
break
;
case
3
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
4
));
break
;
case
4
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
5
));
break
;
case
5
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
6
));
break
;
case
6
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
6.5
));
break
;
case
7
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
7
));
break
;
case
8
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
7.5
));
break
;
case
9
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
8
));
break
;
case
10
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
8.5
));
break
;
default
:
dcBaseOmsOrder
.
setCostHandleBailun
(
BigDecimal
.
valueOf
(
8.5
));
}
}
}
private
void
caculateBailunHandleFee
(
DcBaseOmsOrder
dcBaseOmsOrder
,
Integer
countSelfProducrSku
)
{
BigDecimal
costBailunHandle
;
switch
(
countSelfProducrSku
)
{
case
0
:
case
1
:
costBailunHandle
=
BigDecimal
.
valueOf
(
2.0
);
break
;
case
2
:
case
3
:
case
4
:
case
5
:
costBailunHandle
=
BigDecimal
.
valueOf
(
countSelfProducrSku
-
1
).
add
(
BigDecimal
.
valueOf
(
2.0
));
break
;
case
6
:
case
7
:
case
8
:
case
9
:
case
10
:
costBailunHandle
=
BigDecimal
.
valueOf
(
0.5
).
multiply
(
BigDecimal
.
valueOf
(
countSelfProducrSku
-
5
)).
add
(
BigDecimal
.
valueOf
(
6.0
));
break
;
default
:
costBailunHandle
=
BigDecimal
.
valueOf
(
8.5
);
}
dcBaseOmsOrder
.
setCostHandleBailun
(
costBailunHandle
);
}
private
BailunSkuCumulative
getBailunSkuCumulative
(
OmsResult
omsResult
)
{
private
BailunSkuCumulative
getBailunSkuCumulative
(
OmsResult
omsResult
,
Integer
countSelfProducrSku
)
{
BailunSkuCumulative
bailunSkuCumulative
=
new
BailunSkuCumulative
();
bailunSkuCumulative
.
setMaxSkuLong
(
BigDecimal
.
ZERO
);
bailunSkuCumulative
.
setMaxSkuWidth
(
BigDecimal
.
ZERO
);
...
...
@@ -641,20 +619,20 @@ public class OrderSyncJob extends PointJob {
bailunSkuCumulative
.
setMaxSkuLong
(
skuHeight
);
}
}
}
try
{
DcBaseOmsHandleMapper
mapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsHandleMapper
.
class
);
DcBaseOmsHandle
orderBailunCatagory
=
mapper
.
getOrderBailunCatagory
(
omsResult
.
getBailunSku
().
get
(
0
).
getBailunSku
());
bailunSkuCumulative
.
setHasGeneral
(
true
);
if
(
orderBailunCatagory
!=
null
)
{
//如果没有在这个表, 说明是普货类
bailunSkuCumulative
.
setHasGeneral
(
false
);
try
{
DcBaseOmsHandleMapper
mapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseOmsHandleMapper
.
class
);
DcBaseOmsHandle
orderBailunCatagory
=
mapper
.
getOrderBailunCatagory
(
omsResult
.
getBailunSku
().
get
(
0
).
getBailunSku
());
if
(
orderBailunCatagory
!=
null
)
{
//如果没有在这个表, 说明是普货类, 在这个表, 就是美容自产
countSelfProducrSku
+=
bailunSku
.
getBailunSkuQuantityOrdered
();
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
RuntimeException
(
"MYBATIS操作DB失败"
,
e
);
}
finally
{
SessionUtil
.
closeSession
();
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
throw
new
RuntimeException
(
"MYBATIS操作DB失败"
,
e
);
}
finally
{
SessionUtil
.
closeSession
();
}
return
bailunSkuCumulative
;
}
...
...
@@ -724,7 +702,7 @@ public class OrderSyncJob extends PointJob {
BigDecimal
quantityPickedBigDecimal
=
BigDecimal
.
valueOf
(
pickingItem
.
getQuantityPicked
());
DcBaseOmsPick
dcBaseOmsPick
=
new
DcBaseOmsPick
();
BailunSkuStructure
bailunSkuStructure
=
skuStructureMap
.
get
(
pickingItem
.
getBailunSku
());
BigDecimal
weightRatio
=
bailunSkuStructure
!=
null
&&
pickOrderTotalWeight
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
?
bailunSkuStructure
.
getBailunSkuWeight
().
multiply
(
quantityPickedBigDecimal
).
divide
(
pickOrderTotalWeight
,
5
,
RoundingMode
.
HALF_EVEN
)
:
BigDecimal
.
ONE
;
BigDecimal
weightRatio
=
bailunSkuStructure
!=
null
&&
pickOrderTotalWeight
.
compareTo
(
BigDecimal
.
ZERO
)
==
1
?
bailunSkuStructure
.
getBailunSkuWeight
().
multiply
(
quantityPickedBigDecimal
).
divide
(
pickOrderTotalWeight
,
5
,
RoundingMode
.
HALF_EVEN
)
:
BigDecimal
.
ONE
;
dcBaseOmsPick
.
setHasDelete
(
false
);
dcBaseOmsPick
.
setCostPackaging
(
skuCostPackaging
);
dcBaseOmsPick
.
setCostShipping
(
skuCostShipping
);
...
...
@@ -732,7 +710,7 @@ public class OrderSyncJob extends PointJob {
dcBaseOmsPick
.
setBailunSkuCostPackaging
(
skuCostPackaging
.
multiply
(
weightRatio
).
setScale
(
3
,
RoundingMode
.
HALF_EVEN
));
dcBaseOmsPick
.
setBailunSkuCostShipping
(
skuCostShipping
.
multiply
(
weightRatio
).
setScale
(
3
,
RoundingMode
.
HALF_EVEN
));
//从千克转为克, 且放单位SKU重量
dcBaseOmsPick
.
setBailunSkuOutboundWeight
(
pickingItem
.
getQuantityPicked
()
>
0
?
outboundWeight
.
multiply
(
weightRatio
).
multiply
(
Constant
.
RATE_1000
).
divide
(
quantityPickedBigDecimal
,
3
,
RoundingMode
.
HALF_EVEN
)
:
BigDecimal
.
ZERO
);
dcBaseOmsPick
.
setBailunSkuOutboundWeight
(
pickingItem
.
getQuantityPicked
()
>
0
?
outboundWeight
.
multiply
(
weightRatio
).
multiply
(
Constant
.
RATE_1000
).
divide
(
quantityPickedBigDecimal
,
3
,
RoundingMode
.
HALF_EVEN
)
:
BigDecimal
.
ZERO
);
dcBaseOmsPick
.
setBailunSku
(
pickingItem
.
getBailunSku
());
dcBaseOmsPick
.
setQuantityPicked
(
pickingItem
.
getQuantityPicked
());
dcBaseOmsPick
.
setQuantityShipped
(
pickingItem
.
getQuantityShipped
());
...
...
data-base/base-sync-oms-order/src/test/java/OmsOrderTest.java
View file @
6862872f
...
...
@@ -78,7 +78,7 @@ public class OmsOrderTest {
LinkedHashMap
<
String
,
String
>
map
=
new
LinkedHashMap
<>(
4
);
map
.
put
(
"pageIndex"
,
"1"
);
map
.
put
(
"pageCount"
,
"100"
);
map
.
put
(
"OriginOrderNo"
,
"
323674194737-2025252159011
"
);
map
.
put
(
"OriginOrderNo"
,
"
100011829012136
"
);
Request
request
=
new
Request
.
Builder
()
.
get
()
.
url
(
OkHttpUtil
.
attachHttpGetParams
(
"http://oms.bailuntec.com/apiV2/bailunOrder/getBailunOrders"
,
map
))
...
...
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