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
bltdc
dc-java
Commits
9e238f3c
Commit
9e238f3c
authored
Aug 27, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
亚马逊广告
parent
8301711b
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
135 additions
and
133 deletions
+135
-133
AmazonAdDownloadReportJob.java
...ain/java/com/bailuntec/job/AmazonAdDownloadReportJob.java
+8
-3
AmazonAdGenerateReportIdJob.java
...n/java/com/bailuntec/job/AmazonAdGenerateReportIdJob.java
+70
-62
AmazonAdDownloadReportJobTest.java
...java/com/bailuntec/job/AmazonAdDownloadReportJobTest.java
+1
-0
CompanyAccountSyncJob.java
...rc/main/java/com/bailuntec/job/CompanyAccountSyncJob.java
+5
-0
FbaStockJob.java
...tock-wms/src/main/java/com/bailuntec/job/FbaStockJob.java
+3
-0
FbaStockJobTest.java
...-wms/src/test/java/com/bailuntec/job/FbaStockJobTest.java
+9
-4
DcBaseOmsSkuMapper.java
...rc/main/java/com/bailuntec/mapper/DcBaseOmsSkuMapper.java
+2
-2
JobAmazonAdLogMapper.xml
...c/main/java/com/bailuntec/mapper/JobAmazonAdLogMapper.xml
+1
-0
AutoTurnoverServiceImpl.java
...a/com/bailuntec/service/impl/AutoTurnoverServiceImpl.java
+36
-62
No files found.
data-base/base-sync-amazon-ad/src/main/java/com/bailuntec/job/AmazonAdDownloadReportJob.java
View file @
9e238f3c
...
...
@@ -47,6 +47,7 @@ public class AmazonAdDownloadReportJob implements SimpleJob {
JobAmazonAdLogMapper
jobAmazonAdLogMapper
=
sqlSession
.
getMapper
(
JobAmazonAdLogMapper
.
class
);
DcBaseCompanyAccountMapper
dcBaseCompanyAccountMapper
=
sqlSession
.
getMapper
(
DcBaseCompanyAccountMapper
.
class
);
DcBaseFinanceAmazonAdProductMapper
dcBaseFinanceAmazonAdProductMapper
=
sqlSession
.
getMapper
(
DcBaseFinanceAmazonAdProductMapper
.
class
);
//获取15分钟前未下载的报告 注:省略报告状态判断 直接根据时间
List
<
JobAmazonAdLog
>
jobAmazonAdLogList
=
jobAmazonAdLogMapper
.
selectUnDownload
(
shardingContext
,
LocalDateTime
.
now
().
minusMinutes
(
15
));
...
...
@@ -70,11 +71,12 @@ public class AmazonAdDownloadReportJob implements SimpleJob {
try
(
Response
response
=
client
.
newCall
(
request
).
execute
())
{
if
(
response
.
isSuccessful
()
&&
response
.
body
()
!=
null
)
{
log
.
info
(
"开始解析账号Id为 {}
的Report----{}, 文件大小为:{} 报告时间:{}
"
,
log
.
info
(
"开始解析账号Id为 {}
报告时间:{} 的Report----{}, 文件大小为:{}
"
,
jobAmazonAdLog
.
getAccountId
(),
jobAmazonAdLog
.
getReportDate
(),
jobAmazonAdLog
.
getReportId
(),
response
.
body
().
contentLength
()
,
jobAmazonAdLog
.
getReportDate
()
);
response
.
body
().
contentLength
()
);
try
(
GZIPInputStream
gzipInputStream
=
new
GZIPInputStream
(
response
.
body
().
byteStream
()))
{
Type
type
=
new
TypeToken
<
List
<
AmazonAdProduct
>>()
{
}.
getType
();
...
...
@@ -110,6 +112,9 @@ public class AmazonAdDownloadReportJob implements SimpleJob {
}
}
}
jobAmazonAdLog
.
setStatus
(
true
);
jobAmazonAdLogMapper
.
updateByPrimaryKeySelective
(
jobAmazonAdLog
);
}
}
...
...
data-base/base-sync-amazon-ad/src/main/java/com/bailuntec/job/AmazonAdGenerateReportIdJob.java
View file @
9e238f3c
...
...
@@ -43,70 +43,78 @@ public class AmazonAdGenerateReportIdJob implements SimpleJob {
.
andAmazonAdAuthJsonNotEqualTo
(
""
)
.
example
());
dcBaseCompanyAccountList
.
forEach
(
dcBaseCompanyAccount
->
{
try
{
//
// LocalDateTime reportDate = LocalDateTime.now().minusDays(1).minusHours(12);
LocalDateTime
reportDate
=
LocalDateTime
.
of
(
2020
,
8
,
25
,
0
,
0
);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"reportDate"
,
reportDate
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyyMMdd"
)));
jsonObject
.
put
(
"metrics"
,
propertiesUtil
.
getPropertyAsString
(
"METRICS"
));
MediaType
mediaType
=
MediaType
.
parse
(
"application/json"
);
Response
response
;
AmazonAdAuth
amazonAdAuth
=
JSON
.
parseObject
(
dcBaseCompanyAccount
.
getAmazonAdAuthJson
(),
AmazonAdAuth
.
class
);
RequestBody
body
=
RequestBody
.
create
(
mediaType
,
jsonObject
.
toJSONString
());
Request
request
=
new
Request
.
Builder
()
.
url
(
switchSiteUrl
(
dcBaseCompanyAccount
.
getSiteEn
(),
null
))
.
post
(
body
)
.
addHeader
(
"Authorization"
,
amazonAdAuth
.
getAccessToken
())
.
addHeader
(
"Amazon-Advertising-API-ClientId"
,
amazonAdAuth
.
getClientId
())
.
addHeader
(
"Amazon-Advertising-API-Scope"
,
amazonAdAuth
.
getProfileId
())
.
addHeader
(
"Content-Type"
,
"application/json"
)
.
build
();
response
=
client
.
newCall
(
request
).
execute
();
String
string
=
response
.
body
().
string
();
if
(
response
.
isSuccessful
())
{
AmazonAdSuccessResult
amazonAdSuccessResult
=
JSON
.
parseObject
(
string
,
AmazonAdSuccessResult
.
class
);
JobAmazonAdLog
jobAmazonAdLog
=
jobAmazonAdLogMapper
.
selectOneByExample
(
JobAmazonAdLogExample
.
newAndCreateCriteria
()
.
andAccountIdEqualTo
(
dcBaseCompanyAccount
.
getAccountId
())
.
andReportDateEqualTo
(
reportDate
.
toLocalDate
())
.
example
());
if
(
jobAmazonAdLog
==
null
)
{
jobAmazonAdLog
=
new
JobAmazonAdLog
(
null
,
dcBaseCompanyAccount
.
getAccountId
(),
amazonAdSuccessResult
.
getReportId
(),
reportDate
.
toLocalDate
(),
false
,
LocalDateTime
.
now
(),
LocalDateTime
.
now
(),
dcBaseCompanyAccount
.
getSiteEn
(),
dcBaseCompanyAccount
.
getCompanyId
());
}
jobAmazonAdLogMapper
.
upsert
(
jobAmazonAdLog
);
log
.
info
(
"生成报告成功,报告日志:{}"
,
JSON
.
toJSONString
(
jobAmazonAdLog
));
}
else
{
log
.
error
(
JSON
.
toJSONString
(
response
));
throw
new
RuntimeException
(
"生成报告失败"
);
}
}
catch
(
Exception
ex
)
{
log
.
error
(
ex
.
getMessage
(),
ex
);
log
.
error
(
"帐号id :{} 下载报告失败"
,
dcBaseCompanyAccount
.
getAccountId
());
}
});
dcBaseCompanyAccountList
// .stream()
// .filter(dcBaseCompanyAccount -> dcBaseCompanyAccount.getAccountId() == 671)
.
forEach
(
dcBaseCompanyAccount
->
{
try
{
LocalDateTime
reportDate
=
LocalDateTime
.
now
().
minusDays
(
1
).
minusHours
(
12
);
// LocalDateTime reportDate = LocalDateTime.of(2020, 8, finalI, 0, 0);
JSONObject
jsonObject
=
new
JSONObject
();
jsonObject
.
put
(
"reportDate"
,
reportDate
.
format
(
DateTimeFormatter
.
ofPattern
(
"yyyyMMdd"
)));
jsonObject
.
put
(
"metrics"
,
propertiesUtil
.
getPropertyAsString
(
"METRICS"
));
MediaType
mediaType
=
MediaType
.
parse
(
"application/json"
);
Response
response
;
AmazonAdAuth
amazonAdAuth
=
JSON
.
parseObject
(
dcBaseCompanyAccount
.
getAmazonAdAuthJson
(),
AmazonAdAuth
.
class
);
RequestBody
body
=
RequestBody
.
create
(
mediaType
,
jsonObject
.
toJSONString
());
Request
request
=
new
Request
.
Builder
()
.
url
(
switchSiteUrl
(
dcBaseCompanyAccount
.
getSiteEn
(),
null
))
.
post
(
body
)
.
addHeader
(
"Authorization"
,
amazonAdAuth
.
getAccessToken
())
.
addHeader
(
"Amazon-Advertising-API-ClientId"
,
amazonAdAuth
.
getClientId
())
.
addHeader
(
"Amazon-Advertising-API-Scope"
,
amazonAdAuth
.
getProfileId
())
.
addHeader
(
"Content-Type"
,
"application/json"
)
.
build
();
response
=
client
.
newCall
(
request
).
execute
();
String
string
=
response
.
body
().
string
();
if
(
response
.
isSuccessful
())
{
AmazonAdSuccessResult
amazonAdSuccessResult
=
JSON
.
parseObject
(
string
,
AmazonAdSuccessResult
.
class
);
JobAmazonAdLog
jobAmazonAdLog
=
jobAmazonAdLogMapper
.
selectOneByExample
(
JobAmazonAdLogExample
.
newAndCreateCriteria
()
.
andAccountIdEqualTo
(
dcBaseCompanyAccount
.
getAccountId
())
.
andReportDateEqualTo
(
reportDate
.
toLocalDate
())
.
example
());
if
(
jobAmazonAdLog
==
null
)
{
jobAmazonAdLog
=
new
JobAmazonAdLog
(
null
,
dcBaseCompanyAccount
.
getAccountId
(),
amazonAdSuccessResult
.
getReportId
(),
reportDate
.
toLocalDate
(),
false
,
LocalDateTime
.
now
(),
LocalDateTime
.
now
(),
dcBaseCompanyAccount
.
getSiteEn
(),
dcBaseCompanyAccount
.
getCompanyId
());
}
//如果已经生成了报告 是否设置为需要重新下载?//yes
else
{
jobAmazonAdLog
.
setReportId
(
amazonAdSuccessResult
.
getReportId
());
jobAmazonAdLog
.
setStatus
(
false
);
jobAmazonAdLog
.
setBjModified
(
LocalDateTime
.
now
());
}
jobAmazonAdLogMapper
.
upsert
(
jobAmazonAdLog
);
log
.
info
(
"生成报告成功,报告日志:{}"
,
JSON
.
toJSONString
(
jobAmazonAdLog
));
}
else
{
log
.
error
(
JSON
.
toJSONString
(
response
));
throw
new
RuntimeException
(
"生成报告失败"
);
}
}
catch
(
Exception
ex
)
{
log
.
error
(
ex
.
getMessage
(),
ex
);
log
.
error
(
"帐号id :{} 下载报告失败"
,
dcBaseCompanyAccount
.
getAccountId
());
}
});
}
}
protected
static
String
switchSiteUrl
(
String
siteEn
,
String
param
)
{
...
...
data-base/base-sync-amazon-ad/src/test/java/com/bailuntec/job/AmazonAdDownloadReportJobTest.java
View file @
9e238f3c
...
...
@@ -50,6 +50,7 @@ class AmazonAdDownloadReportJobTest {
GZIPInputStream
inputStream
=
new
GZIPInputStream
(
response
.
body
().
byteStream
());
Type
type
=
new
TypeToken
<
List
<
AmazonAdProduct
>>()
{
}.
getType
();
List
<
AmazonAdProduct
>
amazonAdProductList
=
new
Gson
().
fromJson
(
new
InputStreamReader
(
inputStream
),
type
);
log
.
warn
(
"的Report解析完成"
);
}
...
...
data-base/base-sync-company/src/main/java/com/bailuntec/job/CompanyAccountSyncJob.java
View file @
9e238f3c
...
...
@@ -38,9 +38,13 @@ public class CompanyAccountSyncJob implements SimpleJob {
.
build
();
log
.
info
(
"开始同步百伦帐号信息"
);
log
.
info
(
"请求百伦pams api 开始"
);
try
(
Response
response
=
client
.
newCall
(
request
).
execute
();
SqlSession
sqlSession
=
SessionUtil
.
getFactory
().
openSession
(
true
))
{
log
.
info
(
"请求百伦pams api 开始结束"
);
DcBaseCompanyAccountMapper
dcBaseCompanyAccountMapper
=
sqlSession
.
getMapper
(
DcBaseCompanyAccountMapper
.
class
);
String
resultStr
=
response
.
body
().
string
();
...
...
@@ -57,6 +61,7 @@ public class CompanyAccountSyncJob implements SimpleJob {
if
(
dcBaseCompanyAccount
==
null
)
{
dcBaseCompanyAccount
=
new
DcBaseCompanyAccount
();
dcBaseCompanyAccount
.
setBjCreate
(
LocalDateTime
.
now
());
}
BeanUtils
.
copyProperties
(
dcBaseCompanyAccount
,
companyAccountInfo
);
dcBaseCompanyAccount
.
setBjModified
(
LocalDateTime
.
now
());
...
...
data-base/base-sync-stock-wms/src/main/java/com/bailuntec/job/FbaStockJob.java
View file @
9e238f3c
...
...
@@ -49,6 +49,9 @@ public class FbaStockJob extends PointJob {
Integer
totalPage
=
null
;
HashMap
<
String
,
DcBaseStockFba
>
hashmap
=
new
HashMap
<>();
do
{
log
.
info
(
"总共{}页"
,
totalPage
);
log
.
info
(
"当前{}页"
,
jobPointLog
.
getPageIndex
());
OkHttpClient
client
=
OkHttpUtil
.
getInstance
();
MediaType
mediaType
=
MediaType
.
parse
(
"application/json"
);
LinkedHashMap
<
String
,
Object
>
map
=
new
LinkedHashMap
<>(
3
);
...
...
data-base/base-sync-stock-wms/src/test/java/com/bailuntec/job/FbaStockJobTest.java
View file @
9e238f3c
...
...
@@ -2,6 +2,7 @@ package com.bailuntec.job;
import
com.bailuntec.domain.entity.JobPointLog
;
import
com.dangdang.ddframe.job.api.ShardingContext
;
import
com.dangdang.ddframe.job.api.simple.SimpleJob
;
import
com.dangdang.ddframe.job.executor.ShardingContexts
;
import
org.junit.jupiter.api.Test
;
...
...
@@ -18,14 +19,18 @@ import java.util.HashMap;
class
FbaStockJobTest
{
@Test
void
execute
Job
()
{
void
execute
()
{
FbaStockJob
fbaStockJob
=
new
FbaStockJob
();
ShardingContext
shardingContext
=
new
ShardingContext
(
new
ShardingContexts
(
"1"
,
"fba-stock-job"
,
1
,
""
,
new
HashMap
<>()),
0
);
SimpleJob
fbaStockJob
=
new
FbaStockJob
();
ShardingContext
shardingContext
=
new
ShardingContext
(
new
ShardingContexts
(
"1"
,
"fba-stock-job"
,
1
,
""
,
new
HashMap
<>()),
0
);
JobPointLog
jobPointLog
=
new
JobPointLog
();
jobPointLog
.
setPageIndex
(
1
);
jobPointLog
.
setPageSize
(
100
);
fbaStockJob
.
execute
Job
(
shardingContext
,
jobPointLog
);
fbaStockJob
.
execute
(
shardingContext
);
}
}
data-common/src/main/java/com/bailuntec/mapper/DcBaseOmsSkuMapper.java
View file @
9e238f3c
...
...
@@ -138,7 +138,7 @@ public interface DcBaseOmsSkuMapper {
/**
* <p>
* 过去过去的sku销量
* 过去过去的sku
平均
销量
* </p>
*
* @param lowerTime lowerTime
...
...
@@ -148,5 +148,5 @@ public interface DcBaseOmsSkuMapper {
Integer
omsSkuSellerCount
(
@Param
(
"lowerTime"
)
LocalDateTime
lowerTime
,
@Param
(
"upperTime"
)
LocalDateTime
upperTime
,
@Param
(
"bailunSku"
)
String
bailunSku
,
@Param
(
"warehouseCode"
)
String
warehouseCode
);
@Param
(
"warehouseCode"
)
String
warehouseCode
,
@Param
(
"dyas"
)
Integer
days
);
}
data-common/src/main/java/com/bailuntec/mapper/JobAmazonAdLogMapper.xml
View file @
9e238f3c
...
...
@@ -491,5 +491,6 @@
where status = 0
and bj_create
<
#{localDateTime}
and id % #{shardingContext.shardingTotalCount} = #{shardingContext.shardingItem}
order by bj_modified desc
</select>
</mapper>
data-show/show-auto-turnover/src/main/java/com/bailuntec/service/impl/AutoTurnoverServiceImpl.java
View file @
9e238f3c
...
...
@@ -67,32 +67,32 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
/*第一部分预测*/
BigDecimal
duration1ForecastSellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
BigDecimal
duration1ForecastSellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()
)).
orElse
(
0
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getOneN2
())
.
add
(
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
.
add
(
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()
)).
orElse
(
0
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getOneN4
()))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getOneN6
()));
for
(
int
i
=
0
;
i
<
duration1
;
i
++)
{
if
(
autoForecastDay
>=
forecastSalesDetails
.
size
())
{
forecastSalesDetails
.
offer
(
duration1ForecastSellerNum
);
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN2
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN4
()
+
")"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN4
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN6
()
+
")"
);
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN6
()
+
")"
);
}
}
/*第二部分预测*/
BigDecimal
duration2ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
BigDecimal
duration2ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoN2
())
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoN4
()))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoN6
()));
for
(
int
i
=
0
;
i
<
duration2
;
i
++)
{
...
...
@@ -100,21 +100,21 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
forecastSalesDetails
.
offer
(
duration2ForecastSellerNum
);
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN2
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN4
()
+
")"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN4
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN6
()
+
")"
);
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN6
()
+
")"
);
}
}
/*第三部分预测*/
BigDecimal
duration3ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
BigDecimal
duration3ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getThreeN2
())
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getThreeN4
()))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getThreeN6
()));
for
(
int
i
=
0
;
i
<
duration3
;
i
++)
{
...
...
@@ -122,11 +122,11 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
forecastSalesDetails
.
offer
(
duration3ForecastSellerNum
);
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN2
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN4
()
+
")"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN4
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN6
()
+
")"
);
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN6
()
+
")"
);
}
}
...
...
@@ -179,32 +179,6 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
String
warehouseCode
=
dcAutoTurnover
.
getWarehouseCode
();
//获取过去7天的销量
BigDecimal
last1DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
1
),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
));
BigDecimal
last2DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
2
),
midNight
.
minusDays
(
1
),
bailunSku
,
warehouseCode
)).
orElse
(
0
));
BigDecimal
last3DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
3
),
midNight
.
minusDays
(
2
),
bailunSku
,
warehouseCode
)).
orElse
(
0
));
BigDecimal
last4DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
4
),
midNight
.
minusDays
(
3
),
bailunSku
,
warehouseCode
)).
orElse
(
0
));
BigDecimal
last5DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
5
),
midNight
.
minusDays
(
4
),
bailunSku
,
warehouseCode
)).
orElse
(
0
));
BigDecimal
last6DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
6
),
midNight
.
minusDays
(
5
),
bailunSku
,
warehouseCode
)).
orElse
(
0
));
BigDecimal
last7DaySellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
7
),
midNight
.
minusDays
(
6
),
bailunSku
,
warehouseCode
)).
orElse
(
0
));
// forecastSalesDetails.offer(last1DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
// forecastSalesDetails.offer(last2DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
// forecastSalesDetails.offer(last3DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
// forecastSalesDetails.offer(last4DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
// forecastSalesDetails.offer(last5DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
// forecastSalesDetails.offer(last6DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
// forecastSalesDetails.offer(last7DaySellerNum);
// forecastSalesDetailsFormula.offer(StringUtils.SPACE);
if
(
dcAutoSalesForecastStageConfig
!=
null
)
{
int
duration1
=
BigDecimal
.
valueOf
(
turnoverDays
).
multiply
(
dcAutoSalesForecastStageConfig
.
getOneRatio
()).
intValue
();
int
duration2
=
BigDecimal
.
valueOf
(
turnoverDays
).
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoRatio
()).
intValue
();
...
...
@@ -212,32 +186,32 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
/*第一部分预测*/
BigDecimal
duration1ForecastSellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
BigDecimal
duration1ForecastSellerNum
=
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()
)).
orElse
(
0
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getOneN2
())
.
add
(
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
.
add
(
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()
)).
orElse
(
0
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getOneN4
()))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getOneN6
()));
for
(
int
i
=
0
;
i
<
duration1
;
i
++)
{
if
(
autoForecastDay
>=
forecastSalesDetails
.
size
())
{
forecastSalesDetails
.
offer
(
duration1ForecastSellerNum
);
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN1
().
intValue
()
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN2
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN4
()
+
")"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN3
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN4
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN6
()
+
")"
);
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getOneN5
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getOneN6
()
+
")"
);
}
}
/*第二部分预测*/
BigDecimal
duration2ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
BigDecimal
duration2ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoN2
())
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoN4
()))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getTwoN6
()));
for
(
int
i
=
0
;
i
<
duration2
;
i
++)
{
...
...
@@ -245,21 +219,21 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
forecastSalesDetails
.
offer
(
duration2ForecastSellerNum
);
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN2
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN4
()
+
")"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN4
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN6
()
+
")"
);
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN6
()
+
")"
);
}
}
/*第三部分预测*/
BigDecimal
duration3ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
BigDecimal
duration3ForecastSellerNum
=
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getThreeN2
())
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getThreeN4
()))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
))
.
add
(
BigDecimal
.
valueOf
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()
))
.
multiply
(
dcAutoSalesForecastStageConfig
.
getThreeN6
()));
for
(
int
i
=
0
;
i
<
duration3
;
i
++)
{
...
...
@@ -267,11 +241,11 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
forecastSalesDetails
.
offer
(
duration3ForecastSellerNum
);
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN2
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN4
()
+
")"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN4
()
+
")"
+
"+"
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN6
()
+
")"
);
+
"("
+
BigDecimal
.
valueOf
(
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()
)).
orElse
(
0
))
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN6
()
+
")"
);
}
}
...
...
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