Commit d23b71dc by huluobin

# 周转父pom

parent e89f77e7
......@@ -37,7 +37,6 @@ import java.time.LocalTime;
import java.time.Period;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
......@@ -63,15 +62,6 @@ public class AutoTurnoverJob extends PointJob {
AtomicInteger countItem = new AtomicInteger(0);
ExecutorService executorService = new ThreadPoolExecutor(1000,
1000,
2,
TimeUnit.MINUTES,
new LinkedBlockingQueue<>(),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.CallerRunsPolicy());
for (int page = jobPointLog.getPageIndex(); page <= totalPage; page++) {
//分页查SKU_仓库
......@@ -393,6 +383,7 @@ public class AutoTurnoverJob extends PointJob {
List<String> forecastInboundRelationList = new ArrayList<>(autoForecastDay);
List<BigDecimal> forecastSalesList = new ArrayList<>(autoForecastDay);
List<String> forecastSalesExplainList = new ArrayList<>(forecastSalesList.size());
//七天实际断货+预测断货
List<BigDecimal> forecastShortSupplyList = new ArrayList<>(autoForecastDay);
List<BigDecimal> forecastPurchaseAdvisedList = new ArrayList<>(autoForecastDay);
List<BigDecimal> moqPurchaseAdvisedList = new ArrayList<>(autoForecastDay);
......@@ -417,22 +408,6 @@ public class AutoTurnoverJob extends PointJob {
forecastSalesList = autoTurnoverService.getAutoTurnoverSaleDetails(dcAutoTurnover, turnoverDays, autoForecastDay);
// calculateForecastSales(salesUpperLimit, autoForecastDay, dcAutoSales, forecastSalesList, turnoverSku, recordTime, bailunSku, warehouseCode, dcAutoWarehouseweekSales);
// /*周系数*/
// List<String> param = new ArrayList<>(Lists.newArrayList(dcAutoTurnover.getSalesDetails()
// .trim()
// .substring(1)
// .substring(0, dcAutoTurnover.getSalesDetails().length() - 2)
// .split(",")));
//
// List<BigDecimal> salesDetails = param.stream().map(var -> {
// try {
// String ss = var.trim();
// return new BigDecimal(ss);
// } catch (Exception ex) {
// throw ex;
// }
// }).collect(Collectors.toList());
// AtomicReference<LocalDate> localDate = new AtomicReference<>(LocalDate.now().minusDays(7));
AtomicReference<LocalDate> localDate = new AtomicReference<>(LocalDate.now());
List<SalesDetailItem> salesDetailItemList = forecastSalesList.stream().map(salesDetail -> {
......@@ -706,6 +681,7 @@ public class AutoTurnoverJob extends PointJob {
dcAutoForecastFluctuationActual.setType(1);
dcAutoForecastFluctuationActual.setQuantity(outStock);
}
if (dcAutoForecastFluctuationActual != null) {
dcAutoForecastFluctuationActual.setAvgSalesThree(avgHistoryThreedaySales);
dcAutoForecastFluctuationActual.setStartTime(recordTime);
......@@ -718,7 +694,7 @@ public class AutoTurnoverJob extends PointJob {
* 自动下单管理的冗余-缺货等异常提醒
*/
if (hasMonitorFluctuation) {
unusualFluctuation(totalSafeInventory,
unusualFluctuation(
turnoverDays,
recordTime,
dcAutoConfigSkuWarehouse,
......@@ -728,7 +704,6 @@ public class AutoTurnoverJob extends PointJob {
avgHistoryThreedaySales,
forecastFluctuationList,
forecastShortSupplyList,
forecastInventoryList,
dcBaseStock);
}
......@@ -832,7 +807,7 @@ public class AutoTurnoverJob extends PointJob {
//如果初始建议数 + 备货数 > moq建议数, 那么moq建议数 + 备货数, 否则, 还是取moq建议数
BigDecimal subtract = dcAutoTurnover.getQuantityInitAdvise().subtract(moqPurchaseAdvisedList.get(0));
dcAutoTurnover.setQuantityFinalAdvise(moqPurchaseAdvisedList.get(0));
if (subtract.compareTo(BigDecimal.ZERO) == 1) {
if (subtract.compareTo(BigDecimal.ZERO) > 0) {
dcAutoTurnover.setQuantityFinalAdvise(moqPurchaseAdvisedList.get(0).add(subtract));
}
dcAutoTurnover.setQuantityMinimumOrder(turnoverSku.getMoq());
......@@ -982,8 +957,6 @@ public class AutoTurnoverJob extends PointJob {
*/
if ((dcAutoConfigSkuWarehouse == null && (realInventory > 0 || avgHistoryFourteendaySales.compareTo(BigDecimal.ZERO) == 1)) || (dcAutoConfigSkuWarehouse != null && dcAutoConfigSkuWarehouse.getStatus() == 0 && (realInventory > 0 || avgHistoryFourteendaySales.compareTo(BigDecimal.ZERO) == 1))) {
hasMonitorFluctuation = true;
}
return hasMonitorFluctuation;
}
......@@ -996,7 +969,6 @@ public class AutoTurnoverJob extends PointJob {
* 波动提醒优先级 --> 实际缺货-实际断货-实际冗余-预计缺货-预计冗余
* </p>
*
* @param totalSafeInventory
* @param turnoverDays
* @param recordTime
* @param dcAutoConfigSkuWarehouse
......@@ -1006,11 +978,9 @@ public class AutoTurnoverJob extends PointJob {
* @param avgHistoryThreedaySales
* @param forecastFluctuationList
* @param forecastShortSupplyList
* @param forecastInventoryList
* @param dcBaseStock
*/
private void unusualFluctuation(BigDecimal totalSafeInventory,
Integer turnoverDays,
private void unusualFluctuation(Integer turnoverDays,
LocalDate recordTime,
DcAutoConfigSkuWarehouse dcAutoConfigSkuWarehouse,
DcBaseSku turnoverSku,
......@@ -1019,7 +989,6 @@ public class AutoTurnoverJob extends PointJob {
BigDecimal avgHistoryThreedaySales,
List<DcAutoForecastFluctuation> forecastFluctuationList,
List<BigDecimal> forecastShortSupplyList,
List<BigDecimal> forecastInventoryList,
DcBaseStock dcBaseStock) {
//连续冗余或缺货天数
......@@ -1027,44 +996,25 @@ public class AutoTurnoverJob extends PointJob {
//冗余或缺货天数索引
int index = -1;
if (forecastShortSupplyList.get(turnoverDays).compareTo(BigDecimal.ZERO) > 0) {
for (int i = 0; i <= turnoverDays; i++) {
if (forecastShortSupplyList.get(i).compareTo(BigDecimal.ZERO) > 0) {
days++;
if (index < 0) {
index = i;
}
if (i == turnoverDays && index >= 0) { //如果是最后一天
handleForecastFluctuation(2, forecastFluctuationList, recordTime, days, index);
days = 0;
index = -1;
}
} else if (index >= 0) {
// if (forecastShortSupplyList.get(turnoverDays).compareTo(BigDecimal.ZERO) > 0) {
for (int i = 0; i <= turnoverDays; i++) {
if (forecastShortSupplyList.get(i).compareTo(BigDecimal.ZERO) > 0) {
days++;
if (index < 0) {
index = i;
}
if (i == turnoverDays) { //如果是最后一天
handleForecastFluctuation(2, forecastFluctuationList, recordTime, days, index);
days = 0;
index = -1;
break;
}
} else if (index >= 0) {
handleForecastFluctuation(2, forecastFluctuationList, recordTime, days, index);
break;
}
}
// if (forecastInventoryList.get(turnoverDays).compareTo(totalSafeInventory) > 0) {
// for (int i = 0; i <= turnoverDays; i++) {
// if (i < turnoverDays && forecastInventoryList.get(i).compareTo(totalSafeInventory) == 1) {
// days++;
// if (index < 0) {
// index = i;
// }
// //如果是最后一天
// if (i == turnoverDays && index >= 0) {
// handleForecastFluctuation(4, forecastFluctuationList, recordTime, days, index);
// }
// } else if (index >= 0) {
// handleForecastFluctuation(4, forecastFluctuationList, recordTime, days, index);
// break;
// }
// }
// }
//status` '监控状态, 默认0监控, 停止监控1',
try {
DcAutoForecastFluctuationMapper mapper = SessionUtil.getSession().getMapper(DcAutoForecastFluctuationMapper.class);
......@@ -1112,7 +1062,7 @@ public class AutoTurnoverJob extends PointJob {
.andBailunSkuEqualTo(turnoverSku.getBailunSku())
.andWarehouseCodeEqualTo(warehouseCode).example());
}
} else if (dcAutoConfigSkuWarehouse != null && dcAutoConfigSkuWarehouse.getStatus().equals(1)) {
} else if (dcAutoConfigSkuWarehouse.getStatus().equals(1)) {
mapper.deleteByExample(DcAutoForecastFluctuationExample.newAndCreateCriteria()
.andBailunSkuEqualTo(turnoverSku.getBailunSku())
.andWarehouseCodeEqualTo(warehouseCode).example());
......
......@@ -268,8 +268,8 @@ public class AutoTurnoverTest {
public void testXX2() {
DcBaseStock dcBaseStock = SessionUtil.getSession().getMapper(DcBaseStockMapper.class)
.selectOneByExample(DcBaseStockExample.newAndCreateCriteria()
.andBailunSkuEqualTo("946861301")
.andWarehouseCodeEqualTo("GZBLWH")
.andBailunSkuEqualTo("223723301")
.andWarehouseCodeEqualTo("ESFBABLEM")
.example());
try {
......
......@@ -5,7 +5,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.bailuntec</groupId>
<parent>
<groupId>com.bailuntec</groupId>
<artifactId>bailuntec-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>dc-java</artifactId>
<version>1.0-SNAPSHOT</version>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment