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
6167df76
Commit
6167df76
authored
Sep 07, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
销量预测算法注释
parent
47e64c27
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
96 additions
and
40 deletions
+96
-40
pom.xml
data-base/base-sync-cost-first/pom.xml
+51
-22
Dockerfile
data-base/base-sync-cost-first/src/main/docker/Dockerfile
+6
-0
SyncCostFirstFinishJob.java
...c/main/java/com/bailuntec/job/SyncCostFirstFinishJob.java
+3
-1
job.properties
...se/base-sync-cost-first/src/main/resources/job.properties
+4
-2
SyncCostFirstFinishJobTest.java
...st/java/com/bailuntec/job/SyncCostFirstFinishJobTest.java
+15
-2
Application.java
...nc-oms-order/src/main/java/com/bailuntec/Application.java
+2
-0
job.properties
...ase/base-sync-oms-order/src/main/resources/job.properties
+1
-0
CalculateStockRecordJob.java
.../main/java/com/bailuntec/job/CalculateStockRecordJob.java
+1
-0
AutoTurnoverJob.java
...over/src/main/java/com/bailuntec/job/AutoTurnoverJob.java
+5
-5
AutoTurnoverServiceImpl.java
...a/com/bailuntec/service/impl/AutoTurnoverServiceImpl.java
+7
-7
AutoTurnoverJobTest.java
.../src/test/java/com/bailuntec/job/AutoTurnoverJobTest.java
+1
-1
No files found.
data-base/base-sync-cost-first/pom.xml
View file @
6167df76
...
@@ -11,6 +11,9 @@
...
@@ -11,6 +11,9 @@
<modelVersion>
4.0.0
</modelVersion>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
base-sync-cost-first
</artifactId>
<artifactId>
base-sync-cost-first
</artifactId>
<properties>
<maven.build.timestamp.format>
yyyyMMddHHmm
</maven.build.timestamp.format>
</properties>
<dependencies>
<dependencies>
<dependency>
<dependency>
...
@@ -29,36 +32,61 @@
...
@@ -29,36 +32,61 @@
</dependency>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
<plugins>
<plugins>
<!--maven编译插件-->
<plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<artifactId>
maven-compiler-plugin
</artifactId>
<!--指定编译jdk版本-->
<configuration>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
</configuration>
</plugin>
</plugin>
<!--资源文件插件-->
<plugin>
<plugin>
<
artifactId>
maven-assembly-plugin
</artifact
Id>
<
groupId>
org.apache.maven.plugins
</group
Id>
<
version>
3.1.0
</version
>
<
artifactId>
maven-resources-plugin
</artifactId
>
<configuration>
<configuration>
<archive>
<encoding>
UTF-8
</encoding>
<manifest>
<mainClass>
com.bailuntec.Application
</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
<appendAssemblyId>
false
</appendAssemblyId>
</configuration>
</configuration>
<executions>
<execution>
<id>
make-assembly
</id>
<phase>
package
</phase>
<goals>
<goal>
single
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugin>
<!--测试用例插件-->
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<!-- 跳过测试-->
<configuration>
<skipTests>
true
</skipTests>
</configuration>
</plugin>
<!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>
com.spotify
</groupId>
<artifactId>
docker-maven-plugin
</artifactId>
<version>
1.0.0
</version>
<configuration>
<!--镜像名称:镜像版本-->
<imageName>
ccr.ccs.tencentyun.com/bit.publish/ana-ds-order-api:${maven.build.timestamp}
</imageName>
<dockerDirectory>
src/main/docker
</dockerDirectory>
<resources>
<resource>
<targetPath>
/
</targetPath>
<directory>
${project.build.directory}
</directory>
<include>
${project.build.finalName}.jar
</include>
</resource>
</resources>
<serverId>
bailuntec-docker
</serverId>
</configuration>
</plugin>
</plugins>
</plugins>
<resources>
<resources>
...
@@ -71,6 +99,7 @@
...
@@ -71,6 +99,7 @@
<!--默认是true-->
<!--默认是true-->
<filtering>
true
</filtering>
<filtering>
true
</filtering>
</resource>
</resource>
<resource>
<resource>
<directory>
src/main/java
</directory>
<directory>
src/main/java
</directory>
<includes>
<includes>
...
@@ -78,6 +107,7 @@
...
@@ -78,6 +107,7 @@
<include>
**/*.properties
</include>
<include>
**/*.properties
</include>
</includes>
</includes>
</resource>
</resource>
</resources>
</resources>
</build>
</build>
</project>
</project>
\ No newline at end of file
data-base/base-sync-cost-first/src/main/docker/Dockerfile
0 → 100644
View file @
6167df76
FROM
openjdk:8-jdk-alpine
VOLUME
/tmp
ADD
base-sync-cost-first-1.0-SNAPSHOT.jar app.jar
EXPOSE
8080
ENTRYPOINT
["java","-Xms30m","-Xmx180m","-jar","/app.jar"]
data-base/base-sync-cost-first/src/main/java/com/bailuntec/job/SyncCostFirstFinishJob.java
View file @
6167df76
...
@@ -158,12 +158,14 @@ public class SyncCostFirstFinishJob extends PointJob {
...
@@ -158,12 +158,14 @@ public class SyncCostFirstFinishJob extends PointJob {
.
andBailunSkuEqualTo
(
sku
.
getBailunSku
())
.
andBailunSkuEqualTo
(
sku
.
getBailunSku
())
.
example
());
.
example
());
//瞬时库存
//瞬时库存
dcBaseCostFirstFinish
.
setSkuStockQuantity
(
dcBaseStock
.
getUsableStock
()
+
dcBaseStock
.
getOccupyStock
());
dcBaseCostFirstFinish
.
setSkuStockQuantity
(
dcBaseStock
.
getUsableStock
()
+
dcBaseStock
.
getOccupyStock
());
//sku重量
//sku重量
dcBaseCostFirstFinish
.
setSkuWeight
(
dcBaseSku
.
getWeight
());
dcBaseCostFirstFinish
.
setSkuWeight
(
dcBaseSku
.
getWeight
());
return
dcBaseCostFirstFinish
;
return
dcBaseCostFirstFinish
;
}
else
{
dcBaseCostFirstFinish
.
setOperationTime
(
costFirstFinishData
.
getOperationTime
());
dcBaseCostFirstFinishMapper
.
updateByPrimaryKey
(
dcBaseCostFirstFinish
);
}
}
return
null
;
return
null
;
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
...
...
data-base/base-sync-cost-first/src/main/resources/job.properties
View file @
6167df76
#EVENT_RDB_STORAGE_DRIVER=com.mysql.jdbc.Driver
#EVENT_RDB_STORAGE_DRIVER=com.mysql.jdbc.Driver
#EVENT_RDB_STORAGE_URL=jdbc:mysql://192.168.6.140:3306/bailun_datacenter?serverTimezone=GMT%2B8&characterEncoding=utf-8
EVENT_RDB_STORAGE_URL
=
jdbc:mysql://gz-cdb-kp7s5i79.sql.tencentcdb.com:61691/bailun_datacenter?useUnicode=true&characterEncoding=utf-8
#EVENT_RDB_STORAGE_USERNAME=root
#EVENT_RDB_STORAGE_USERNAME=root
#EVENT_RDB_STORAGE_PASSWORD=123456
#EVENT_RDB_STORAGE_PASSWORD=123456
#ZOOKEEPER_SERVER=127.0.0.1:2181
#ZOOKEEPER_SERVER=127.0.0.1:2181
EVENT_RDB_STORAGE_DRIVER
=
com.mysql.jdbc.Driver
EVENT_RDB_STORAGE_DRIVER
=
com.mysql.jdbc.Driver
EVENT_RDB_STORAGE_URL
=
jdbc:mysql://10.0.8.15:3306/bailun_datacenter?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#
EVENT_RDB_STORAGE_URL=jdbc:mysql://10.0.8.15:3306/bailun_datacenter?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
EVENT_RDB_STORAGE_USERNAME
=
root
EVENT_RDB_STORAGE_USERNAME
=
root
EVENT_RDB_STORAGE_PASSWORD
=
#7kfnymAM$Y9-Ntf
EVENT_RDB_STORAGE_PASSWORD
=
#7kfnymAM$Y9-Ntf
ZOOKEEPER_SERVER=172.31.255.120:2181
ZOOKEEPER_SERVER=172.31.255.120:2181
NAME_SPACE
=
data-center
NAME_SPACE
=
data-center
JOB_NAME
=
base-sync-cost-first
JOB_NAME
=
base-sync-cost-first
JOB_CRON
=
0 10 0/1 * * ? *
JOB_CRON
=
0 10 0/1 * * ? *
...
...
data-base/base-sync-cost-first/src/test/java/com/bailuntec/job/SyncCostFirstFinishJobTest.java
View file @
6167df76
package
com
.
bailuntec
.
job
;
package
com
.
bailuntec
.
job
;
import
com.bailuntec.domain.entity.JobPointLog
;
import
com.bailuntec.domain.entity.JobPointLog
;
import
com.bailuntec.support.PointJob
;
import
com.dangdang.ddframe.job.api.ShardingContext
;
import
com.dangdang.ddframe.job.executor.ShardingContexts
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
/**
/**
* <p>
* <p>
...
@@ -20,9 +24,18 @@ public class SyncCostFirstFinishJobTest {
...
@@ -20,9 +24,18 @@ public class SyncCostFirstFinishJobTest {
public
void
test
()
{
public
void
test
()
{
SyncCostFirstFinishJob
syncCostFirstFinishJob
=
new
SyncCostFirstFinishJob
();
SyncCostFirstFinishJob
syncCostFirstFinishJob
=
new
SyncCostFirstFinishJob
();
JobPointLog
jobPointLog
=
new
JobPointLog
(
"base-sync-cost-first-finish"
,
1
,
1000
,
1
,
1
,
JobPointLog
jobPointLog
=
new
JobPointLog
(
"base-sync-cost-first-finish"
,
1
,
1000
,
1
,
1
,
LocalDateTime
.
of
(
2020
,
8
,
1
,
0
,
0
,
0
),
LocalDateTime
.
of
(
2020
,
9
,
7
,
15
,
1
0
,
0
),
LocalDateTime
.
of
(
2020
,
9
,
2
,
0
,
0
,
0
));
LocalDateTime
.
of
(
2020
,
9
,
7
,
16
,
1
0
,
0
));
syncCostFirstFinishJob
.
executeJob
(
null
,
jobPointLog
);
syncCostFirstFinishJob
.
executeJob
(
null
,
jobPointLog
);
}
}
@Test
public
void
test2
()
{
PointJob
syncCostFirstFinishJob
=
new
SyncCostFirstFinishJob
();
ShardingContext
job
=
new
ShardingContext
(
new
ShardingContexts
(
"1"
,
"base-sync-cost-first-finish"
,
1
,
""
,
new
HashMap
<>()),
0
);
syncCostFirstFinishJob
.
execute
(
job
);
}
}
}
data-base/base-sync-oms-order/src/main/java/com/bailuntec/Application.java
View file @
6167df76
...
@@ -33,6 +33,7 @@ public class Application {
...
@@ -33,6 +33,7 @@ public class Application {
new
JobScheduler
(
createRegistryCenter
(),
createJobConfiguration2
(),
createJobEventConfiguration
(),
new
OrderSyncJobListener
()).
init
();
new
JobScheduler
(
createRegistryCenter
(),
createJobConfiguration2
(),
createJobEventConfiguration
(),
new
OrderSyncJobListener
()).
init
();
}
}
private
static
CoordinatorRegistryCenter
createRegistryCenter
()
{
private
static
CoordinatorRegistryCenter
createRegistryCenter
()
{
CoordinatorRegistryCenter
regCenter
=
new
ZookeeperRegistryCenter
(
new
ZookeeperConfiguration
(
CoordinatorRegistryCenter
regCenter
=
new
ZookeeperRegistryCenter
(
new
ZookeeperConfiguration
(
propertiesUtil
.
getPropertyAsString
(
"ZOOKEEPER_SERVER"
),
propertiesUtil
.
getPropertyAsString
(
"ZOOKEEPER_SERVER"
),
...
@@ -41,6 +42,7 @@ public class Application {
...
@@ -41,6 +42,7 @@ public class Application {
return
regCenter
;
return
regCenter
;
}
}
private
static
LiteJobConfiguration
createJobConfiguration
()
{
private
static
LiteJobConfiguration
createJobConfiguration
()
{
JobCoreConfiguration
simpleCoreConfig
=
JobCoreConfiguration
.
newBuilder
(
JobCoreConfiguration
simpleCoreConfig
=
JobCoreConfiguration
.
newBuilder
(
propertiesUtil
.
getPropertyAsString
(
"JOB_NAME"
),
propertiesUtil
.
getPropertyAsString
(
"JOB_NAME"
),
...
...
data-base/base-sync-oms-order/src/main/resources/job.properties
View file @
6167df76
...
@@ -21,4 +21,5 @@ JOB_CRON30=0 0 22,23,00 * * ? *
...
@@ -21,4 +21,5 @@ JOB_CRON30=0 0 22,23,00 * * ? *
JOB_COROUTINE_NAME
=
base-sync-oms-order-task2
JOB_COROUTINE_NAME
=
base-sync-oms-order-task2
JOB_COROUTINE_CRON
=
0/1 * * * * ?
JOB_COROUTINE_CRON
=
0/1 * * * * ?
SHARDING_TOTAL_COUNT
=
1
SHARDING_TOTAL_COUNT
=
1
data-mid/mid-duration-stock/src/main/java/com/bailuntec/job/CalculateStockRecordJob.java
View file @
6167df76
...
@@ -54,6 +54,7 @@ public class CalculateStockRecordJob extends PointJob {
...
@@ -54,6 +54,7 @@ public class CalculateStockRecordJob extends PointJob {
// 根据仓库、sku,入库时间升序查询入库sku记录
// 根据仓库、sku,入库时间升序查询入库sku记录
DcBaseStockRecordMapper
midDcBaseStockRecordMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseStockRecordMapper
.
class
);
DcBaseStockRecordMapper
midDcBaseStockRecordMapper
=
SessionUtil
.
getSession
().
getMapper
(
DcBaseStockRecordMapper
.
class
);
List
<
DcBaseStockRecord
>
baseStockRecordList
=
midDcBaseStockRecordMapper
.
selectByStockTime
(
dcBaseStockRecord
.
getBailunSku
(),
dcBaseStockRecord
.
getWarehouseCode
());
List
<
DcBaseStockRecord
>
baseStockRecordList
=
midDcBaseStockRecordMapper
.
selectByStockTime
(
dcBaseStockRecord
.
getBailunSku
(),
dcBaseStockRecord
.
getWarehouseCode
());
Integer
quantityStock
=
0
;
Integer
quantityStock
=
0
;
boolean
firstMatch
=
true
;
boolean
firstMatch
=
true
;
...
...
data-show/show-auto-turnover/src/main/java/com/bailuntec/job/AutoTurnoverJob.java
View file @
6167df76
...
@@ -390,10 +390,10 @@ public class AutoTurnoverJob extends PointJob {
...
@@ -390,10 +390,10 @@ public class AutoTurnoverJob extends PointJob {
* 均值, 配置安全库存法: 销量上下限 根据过去30天销量,计算出合理的销量封顶值和销量最低值
* 均值, 配置安全库存法: 销量上下限 根据过去30天销量,计算出合理的销量封顶值和销量最低值
* 曲线拟合 :销量预测, 根据销量走势和上下限,计算出销量预测曲线, 如果历史销量包含0, 无法使用指数函数拟合
* 曲线拟合 :销量预测, 根据销量走势和上下限,计算出销量预测曲线, 如果历史销量包含0, 无法使用指数函数拟合
*/
*/
forecastSalesList
=
autoTurnoverService
.
getAutoTurnoverSaleDetails
(
dcAutoTurnover
,
turnoverDays
,
autoForecastDay
);
//
forecastSalesList = autoTurnoverService.getAutoTurnoverSaleDetails(dcAutoTurnover, turnoverDays, autoForecastDay);
//
calculateForecastSales(salesUpperLimit, autoForecastDay, dcAutoSales, forecastSalesList, turnoverSku, recordTime, bailunSku, warehouseCode, dcAutoWarehouseweekSales);
calculateForecastSales
(
salesUpperLimit
,
autoForecastDay
,
dcAutoSales
,
forecastSalesList
,
turnoverSku
,
recordTime
,
bailunSku
,
warehouseCode
,
dcAutoWarehouseweekSales
);
List
<
String
>
forecastSalesListFormula
=
autoTurnoverService
.
getAutoTurnoverSaleDetailsFormula
(
dcAutoTurnover
,
turnoverDays
,
autoForecastDay
);
//
List<String> forecastSalesListFormula = autoTurnoverService.getAutoTurnoverSaleDetailsFormula(dcAutoTurnover, turnoverDays, autoForecastDay);
/*
/*
* 处理矫正信息
* 处理矫正信息
...
@@ -667,7 +667,7 @@ public class AutoTurnoverJob extends PointJob {
...
@@ -667,7 +667,7 @@ public class AutoTurnoverJob extends PointJob {
if
(
i
<
7
)
{
if
(
i
<
7
)
{
avgForecastSevendaySales
=
avgForecastSevendaySales
.
add
(
forecastSalesList
.
get
(
i
));
avgForecastSevendaySales
=
avgForecastSevendaySales
.
add
(
forecastSalesList
.
get
(
i
));
forecastSalesList
.
add
(
i
,
BigDecimal
.
valueOf
(
historySalesList
.
get
(
23
+
i
)));
forecastSalesList
.
add
(
i
,
BigDecimal
.
valueOf
(
historySalesList
.
get
(
23
+
i
)));
forecastSalesListFormula
.
add
(
i
,
StringUtils
.
SPACE
);
//
forecastSalesListFormula.add(i, StringUtils.SPACE);
forecastSalesExplainList
.
add
(
i
,
"历史销量"
);
forecastSalesExplainList
.
add
(
i
,
"历史销量"
);
forecastInboundList
.
add
(
i
,
0
);
forecastInboundList
.
add
(
i
,
0
);
forecastInventoryList
.
add
(
i
,
BigDecimal
.
ZERO
);
forecastInventoryList
.
add
(
i
,
BigDecimal
.
ZERO
);
...
@@ -743,7 +743,7 @@ public class AutoTurnoverJob extends PointJob {
...
@@ -743,7 +743,7 @@ public class AutoTurnoverJob extends PointJob {
dcAutoTurnover
.
setTurnoverDays
(
turnoverDays
);
dcAutoTurnover
.
setTurnoverDays
(
turnoverDays
);
dcAutoTurnover
.
setQuantitySafeInventory
(
totalSafeInventory
);
dcAutoTurnover
.
setQuantitySafeInventory
(
totalSafeInventory
);
dcAutoTurnover
.
setHqType
(
dcBaseWarehouse
.
getHqType
());
dcAutoTurnover
.
setHqType
(
dcBaseWarehouse
.
getHqType
());
dcAutoTurnover
.
setSalesDetailsFormula
(
new
Gson
().
toJson
(
forecastSalesListFormula
));
//
dcAutoTurnover.setSalesDetailsFormula(new Gson().toJson(forecastSalesListFormula));
/*dcBaseStock.setSkuTitleCn(turnoverSku.getSkuTitleCn());
/*dcBaseStock.setSkuTitleCn(turnoverSku.getSkuTitleCn());
dcBaseStock.setProductInnerCode(turnoverSku.getProductInnerCode());
dcBaseStock.setProductInnerCode(turnoverSku.getProductInnerCode());
...
...
data-show/show-auto-turnover/src/main/java/com/bailuntec/service/impl/AutoTurnoverServiceImpl.java
View file @
6167df76
...
@@ -119,7 +119,7 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
...
@@ -119,7 +119,7 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
log
.
info
(
"没有匹配销量预测规则,采用平均销量"
);
log
.
info
(
"没有匹配销量预测规则,采用平均销量"
);
for
(
int
i
=
0
;
i
<
turnoverDays
;
i
++)
{
for
(
int
i
=
0
;
i
<
turnoverDays
;
i
++)
{
if
(
autoForecastDay
>=
forecastSalesDetails
.
size
())
{
if
(
autoForecastDay
>=
forecastSalesDetails
.
size
())
{
forecastSalesDetails
.
offer
(
dcAutoTurnover
.
getDailyWeightedSales
());
forecastSalesDetails
.
offer
(
dcAutoTurnover
.
getDailyWeightedSales
()
==
null
?
BigDecimal
.
ZERO
:
dcAutoTurnover
.
getDailyWeightedSales
()
);
}
}
}
}
}
}
...
@@ -187,11 +187,11 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
...
@@ -187,11 +187,11 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
for
(
int
i
=
0
;
i
<
duration2
;
i
++)
{
for
(
int
i
=
0
;
i
<
duration2
;
i
++)
{
if
(
autoForecastDay
>=
forecastSalesDetailsFormula
.
size
())
{
if
(
autoForecastDay
>=
forecastSalesDetailsFormula
.
size
())
{
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
twoN1
==
0
?
1
:
twoN1
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
twoN1
==
0
?
1
:
twoN1
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN2
()
+
")"
+
"+"
+
"+"
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
twoN3
==
0
?
1
:
twoN3
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN4
()
+
")"
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
twoN3
==
0
?
1
:
twoN3
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN4
()
+
")"
+
"+"
+
"+"
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
twoN5
==
0
?
1
:
twoN5
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN6
()
+
")"
);
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getTwoN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
twoN5
==
0
?
1
:
twoN5
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getTwoN6
()
+
")"
);
}
}
}
}
...
@@ -200,11 +200,11 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
...
@@ -200,11 +200,11 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
for
(
int
i
=
0
;
i
<
duration3
;
i
++)
{
for
(
int
i
=
0
;
i
<
duration3
;
i
++)
{
if
(
autoForecastDay
>=
forecastSalesDetailsFormula
.
size
())
{
if
(
autoForecastDay
>=
forecastSalesDetailsFormula
.
size
())
{
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
threeN1
==
0
?
1
:
threeN1
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN2
()
+
")"
forecastSalesDetailsFormula
.
offer
(
"("
+
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN1
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
threeN1
==
0
?
1
:
threeN1
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN2
()
+
")"
+
"+"
+
"+"
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
threeN3
==
0
?
1
:
threeN3
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN4
()
+
")"
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN3
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
threeN3
==
0
?
1
:
threeN3
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN4
()
+
")"
+
"+"
+
"+"
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
threeN5
==
0
?
1
:
threeN5
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN6
()
+
")"
);
+
"("
+
Optional
.
ofNullable
(
dcBaseOmsSkuMapper
.
omsSkuSellerCount
(
midNight
.
minusDays
(
dcAutoSalesForecastStageConfig
.
getThreeN5
().
intValue
()),
midNight
,
bailunSku
,
warehouseCode
,
threeN5
==
0
?
1
:
threeN5
)).
orElse
(
BigDecimal
.
ZERO
).
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
)
+
"*"
+
dcAutoSalesForecastStageConfig
.
getThreeN6
()
+
")"
);
}
}
}
}
...
...
data-show/show-auto-turnover/src/test/java/com/bailuntec/job/AutoTurnoverJobTest.java
View file @
6167df76
...
@@ -74,7 +74,7 @@ public class AutoTurnoverJobTest {
...
@@ -74,7 +74,7 @@ public class AutoTurnoverJobTest {
DcBaseStockMapper
dcBaseStockMapper
=
sqlSession
.
getMapper
(
DcBaseStockMapper
.
class
);
DcBaseStockMapper
dcBaseStockMapper
=
sqlSession
.
getMapper
(
DcBaseStockMapper
.
class
);
DcBaseStock
dcBaseStock
=
dcBaseStockMapper
.
selectOneByExample
(
DcBaseStockExample
.
newAndCreateCriteria
()
DcBaseStock
dcBaseStock
=
dcBaseStockMapper
.
selectOneByExample
(
DcBaseStockExample
.
newAndCreateCriteria
()
.
andBailunSkuEqualTo
(
"
228442801
"
)
.
andBailunSkuEqualTo
(
"
948259717
"
)
.
andWarehouseCodeEqualTo
(
"GZBLWH"
)
.
andWarehouseCodeEqualTo
(
"GZBLWH"
)
.
example
());
.
example
());
...
...
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