Commit 8f5caf75 by wutong

自动周转新增30天平均历史销量, 且修改对JIT的判定

parent 7608bd55
...@@ -442,6 +442,15 @@ public class DcAutoTurnover { ...@@ -442,6 +442,15 @@ public class DcAutoTurnover {
/** /**
* *
* This field was generated by MyBatis Generator. * This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_turnover.history_thirtyday_sales
*
* @mbg.generated
*/
private BigDecimal historyThirtydaySales;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_turnover.sales_explain_details * This field corresponds to the database column dc_auto_turnover.sales_explain_details
* *
* @mbg.generated * @mbg.generated
...@@ -553,6 +562,7 @@ public class DcAutoTurnover { ...@@ -553,6 +562,7 @@ public class DcAutoTurnover {
sb.append(", turnoverInbound=").append(turnoverInbound); sb.append(", turnoverInbound=").append(turnoverInbound);
sb.append(", historySevendaySales=").append(historySevendaySales); sb.append(", historySevendaySales=").append(historySevendaySales);
sb.append(", historyFourteendaySales=").append(historyFourteendaySales); sb.append(", historyFourteendaySales=").append(historyFourteendaySales);
sb.append(", historyThirtydaySales=").append(historyThirtydaySales);
sb.append(", salesExplainDetails=").append(salesExplainDetails); sb.append(", salesExplainDetails=").append(salesExplainDetails);
sb.append(", forecastTurnoverdaySales=").append(forecastTurnoverdaySales); sb.append(", forecastTurnoverdaySales=").append(forecastTurnoverdaySales);
sb.append(", stockUpSales=").append(stockUpSales); sb.append(", stockUpSales=").append(stockUpSales);
...@@ -629,6 +639,7 @@ public class DcAutoTurnover { ...@@ -629,6 +639,7 @@ public class DcAutoTurnover {
&& (this.getTurnoverInbound() == null ? other.getTurnoverInbound() == null : this.getTurnoverInbound().equals(other.getTurnoverInbound())) && (this.getTurnoverInbound() == null ? other.getTurnoverInbound() == null : this.getTurnoverInbound().equals(other.getTurnoverInbound()))
&& (this.getHistorySevendaySales() == null ? other.getHistorySevendaySales() == null : this.getHistorySevendaySales().equals(other.getHistorySevendaySales())) && (this.getHistorySevendaySales() == null ? other.getHistorySevendaySales() == null : this.getHistorySevendaySales().equals(other.getHistorySevendaySales()))
&& (this.getHistoryFourteendaySales() == null ? other.getHistoryFourteendaySales() == null : this.getHistoryFourteendaySales().equals(other.getHistoryFourteendaySales())) && (this.getHistoryFourteendaySales() == null ? other.getHistoryFourteendaySales() == null : this.getHistoryFourteendaySales().equals(other.getHistoryFourteendaySales()))
&& (this.getHistoryThirtydaySales() == null ? other.getHistoryThirtydaySales() == null : this.getHistoryThirtydaySales().equals(other.getHistoryThirtydaySales()))
&& (this.getSalesExplainDetails() == null ? other.getSalesExplainDetails() == null : this.getSalesExplainDetails().equals(other.getSalesExplainDetails())) && (this.getSalesExplainDetails() == null ? other.getSalesExplainDetails() == null : this.getSalesExplainDetails().equals(other.getSalesExplainDetails()))
&& (this.getForecastTurnoverdaySales() == null ? other.getForecastTurnoverdaySales() == null : this.getForecastTurnoverdaySales().equals(other.getForecastTurnoverdaySales())) && (this.getForecastTurnoverdaySales() == null ? other.getForecastTurnoverdaySales() == null : this.getForecastTurnoverdaySales().equals(other.getForecastTurnoverdaySales()))
&& (this.getStockUpSales() == null ? other.getStockUpSales() == null : this.getStockUpSales().equals(other.getStockUpSales())) && (this.getStockUpSales() == null ? other.getStockUpSales() == null : this.getStockUpSales().equals(other.getStockUpSales()))
...@@ -695,6 +706,7 @@ public class DcAutoTurnover { ...@@ -695,6 +706,7 @@ public class DcAutoTurnover {
result = prime * result + ((getTurnoverInbound() == null) ? 0 : getTurnoverInbound().hashCode()); result = prime * result + ((getTurnoverInbound() == null) ? 0 : getTurnoverInbound().hashCode());
result = prime * result + ((getHistorySevendaySales() == null) ? 0 : getHistorySevendaySales().hashCode()); result = prime * result + ((getHistorySevendaySales() == null) ? 0 : getHistorySevendaySales().hashCode());
result = prime * result + ((getHistoryFourteendaySales() == null) ? 0 : getHistoryFourteendaySales().hashCode()); result = prime * result + ((getHistoryFourteendaySales() == null) ? 0 : getHistoryFourteendaySales().hashCode());
result = prime * result + ((getHistoryThirtydaySales() == null) ? 0 : getHistoryThirtydaySales().hashCode());
result = prime * result + ((getSalesExplainDetails() == null) ? 0 : getSalesExplainDetails().hashCode()); result = prime * result + ((getSalesExplainDetails() == null) ? 0 : getSalesExplainDetails().hashCode());
result = prime * result + ((getForecastTurnoverdaySales() == null) ? 0 : getForecastTurnoverdaySales().hashCode()); result = prime * result + ((getForecastTurnoverdaySales() == null) ? 0 : getForecastTurnoverdaySales().hashCode());
result = prime * result + ((getStockUpSales() == null) ? 0 : getStockUpSales().hashCode()); result = prime * result + ((getStockUpSales() == null) ? 0 : getStockUpSales().hashCode());
......
...@@ -3371,6 +3371,66 @@ public class DcAutoTurnoverExample { ...@@ -3371,6 +3371,66 @@ public class DcAutoTurnoverExample {
return (Criteria) this; return (Criteria) this;
} }
public Criteria andHistoryThirtydaySalesIsNull() {
addCriterion("history_thirtyday_sales is null");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesIsNotNull() {
addCriterion("history_thirtyday_sales is not null");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesEqualTo(BigDecimal value) {
addCriterion("history_thirtyday_sales =", value, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesNotEqualTo(BigDecimal value) {
addCriterion("history_thirtyday_sales <>", value, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesGreaterThan(BigDecimal value) {
addCriterion("history_thirtyday_sales >", value, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("history_thirtyday_sales >=", value, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesLessThan(BigDecimal value) {
addCriterion("history_thirtyday_sales <", value, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesLessThanOrEqualTo(BigDecimal value) {
addCriterion("history_thirtyday_sales <=", value, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesIn(List<BigDecimal> values) {
addCriterion("history_thirtyday_sales in", values, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesNotIn(List<BigDecimal> values) {
addCriterion("history_thirtyday_sales not in", values, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("history_thirtyday_sales between", value1, value2, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andHistoryThirtydaySalesNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("history_thirtyday_sales not between", value1, value2, "historyThirtydaySales");
return (Criteria) this;
}
public Criteria andSalesExplainDetailsIsNull() { public Criteria andSalesExplainDetailsIsNull() {
addCriterion("sales_explain_details is null"); addCriterion("sales_explain_details is null");
return (Criteria) this; return (Criteria) this;
......
...@@ -16,6 +16,8 @@ public interface Constant { ...@@ -16,6 +16,8 @@ public interface Constant {
String BUYER_JIT_1 = "张莹霞"; String BUYER_JIT_1 = "张莹霞";
String BUYER_JIT_2 = "张莹霞1"; String BUYER_JIT_2 = "张莹霞1";
String BUYER_JIT_3 = "冯兆欣"; String BUYER_JIT_3 = "冯兆欣";
String WAREHOUSE_JIT = "GZBLWH";
BigDecimal BIGDECIMAL_THIRTY = BigDecimal.valueOf(30);
BigDecimal BIGDECIMAL_FOURTEEN = BigDecimal.valueOf(14); BigDecimal BIGDECIMAL_FOURTEEN = BigDecimal.valueOf(14);
BigDecimal BIGDECIMAL_SEVEN = BigDecimal.valueOf(7); BigDecimal BIGDECIMAL_SEVEN = BigDecimal.valueOf(7);
BigDecimal BIGDECIMAL_THREE = BigDecimal.valueOf(3); BigDecimal BIGDECIMAL_THREE = BigDecimal.valueOf(3);
......
...@@ -330,17 +330,23 @@ public class AutoTurnoverJob extends PointJob { ...@@ -330,17 +330,23 @@ public class AutoTurnoverJob extends PointJob {
Integer historyFourteenSales = 0; Integer historyFourteenSales = 0;
Integer historySevenSales = 0; Integer historySevenSales = 0;
Integer historyThreeSales = 0; Integer historyThreeSales = 0;
for (int i = 0; i < 14; i++) { Integer historyThirtySales = 0;
for (int i = 0; i < 30; i++) {
if (i < 3) { if (i < 3) {
historyThreeSales += historySalesList.get(27 + i); historyThreeSales += historySalesList.get(27 + i);
} }
if (i < 7) { if (i < 7) {
historySevenSales += historySalesList.get(23 + i); historySevenSales += historySalesList.get(23 + i);
} }
historyFourteenSales += historySalesList.get(16 + i); if (i < 14) {
historyFourteenSales += historySalesList.get(16 + i);
}
historyThirtySales += historySalesList.get(i);
} }
BigDecimal avgHistoryFourteendaySales = BigDecimal.valueOf(historyFourteenSales.longValue()).divide(Constant.BIGDECIMAL_FOURTEEN, 3, RoundingMode.HALF_EVEN);
BigDecimal avgHistoryThreedaySales = BigDecimal.valueOf(historyThreeSales.longValue()).divide(Constant.BIGDECIMAL_THREE, 3, RoundingMode.HALF_EVEN); BigDecimal avgHistoryThreedaySales = BigDecimal.valueOf(historyThreeSales.longValue()).divide(Constant.BIGDECIMAL_THREE, 3, RoundingMode.HALF_EVEN);
BigDecimal avgHistorySevendaySales = BigDecimal.valueOf(historySevenSales.longValue()).divide(Constant.BIGDECIMAL_SEVEN, 3, RoundingMode.HALF_EVEN);
BigDecimal avgHistoryFourteendaySales = BigDecimal.valueOf(historyFourteenSales.longValue()).divide(Constant.BIGDECIMAL_FOURTEEN, 3, RoundingMode.HALF_EVEN);
BigDecimal avgHistoryThirtydaySales = BigDecimal.valueOf(historyFourteenSales.longValue()).divide(Constant.BIGDECIMAL_THIRTY, 3, RoundingMode.HALF_EVEN);
/* /*
* forecastFluctuationList 用于存放预计缺货 实际缺货 预计冗余 实际冗余的数据 * forecastFluctuationList 用于存放预计缺货 实际缺货 预计冗余 实际冗余的数据
* dcAutoConfigSkuWarehouse 看是否监控状态 * dcAutoConfigSkuWarehouse 看是否监控状态
...@@ -435,8 +441,9 @@ public class AutoTurnoverJob extends PointJob { ...@@ -435,8 +441,9 @@ public class AutoTurnoverJob extends PointJob {
dcAutoTurnover.setQuantityBeginAdvise(forecastPurchaseAdvisedList.get(0)); dcAutoTurnover.setQuantityBeginAdvise(forecastPurchaseAdvisedList.get(0));
dcAutoTurnover.setForecastTurnoverdaySales(avgForecastFourteendaySales.divide(BigDecimal.valueOf(turnoverDays), 3, RoundingMode.HALF_EVEN)); dcAutoTurnover.setForecastTurnoverdaySales(avgForecastFourteendaySales.divide(BigDecimal.valueOf(turnoverDays), 3, RoundingMode.HALF_EVEN));
dcAutoTurnover.setSalesExplainDetails(forecastSalesExplainList.toString()); dcAutoTurnover.setSalesExplainDetails(forecastSalesExplainList.toString());
dcAutoTurnover.setHistorySevendaySales(BigDecimal.valueOf(historySevenSales.doubleValue()).divide(Constant.BIGDECIMAL_SEVEN, 3, RoundingMode.HALF_EVEN)); dcAutoTurnover.setHistorySevendaySales(avgHistorySevendaySales);
dcAutoTurnover.setHistoryFourteendaySales(avgHistoryFourteendaySales); dcAutoTurnover.setHistoryFourteendaySales(avgHistoryFourteendaySales);
dcAutoTurnover.setHistoryThirtydaySales(avgHistoryThirtydaySales);
dcAutoTurnover.setSupplementarySales(forecastSalesList.get(turnoverDays)); dcAutoTurnover.setSupplementarySales(forecastSalesList.get(turnoverDays));
dcAutoTurnover.setAverageSupplierDelivery(dcAutoTurnover.getSupplierDelivery()); dcAutoTurnover.setAverageSupplierDelivery(dcAutoTurnover.getSupplierDelivery());
dcAutoTurnover.setSalesUpperLimit(salesUpperLimit); dcAutoTurnover.setSalesUpperLimit(salesUpperLimit);
...@@ -546,7 +553,8 @@ public class AutoTurnoverJob extends PointJob { ...@@ -546,7 +553,8 @@ public class AutoTurnoverJob extends PointJob {
try { try {
DcAutoForecastFluctuationMapper mapper = SessionUtil.getSession().getMapper(DcAutoForecastFluctuationMapper.class); DcAutoForecastFluctuationMapper mapper = SessionUtil.getSession().getMapper(DcAutoForecastFluctuationMapper.class);
//JIT的 可以不做 冗余 和 缺货预测 实际冗余和实际缺货也不用提醒 //JIT的 可以不做 冗余 和 缺货预测 实际冗余和实际缺货也不用提醒
if ( !turnoverSku.getBuyerName().equals(Constant.BUYER_JIT_1) && !turnoverSku.getBuyerName().equals(Constant.BUYER_JIT_2) && !turnoverSku.getBuyerName().equals(Constant.BUYER_JIT_3)) { //如果仓库是广州01 且 是这三个销售员, 就不提醒
if (!warehouseCode.equals(Constant.WAREHOUSE_JIT) && !turnoverSku.getBuyerName().equals(Constant.BUYER_JIT_1) && !turnoverSku.getBuyerName().equals(Constant.BUYER_JIT_2) && !turnoverSku.getBuyerName().equals(Constant.BUYER_JIT_3)) {
if (dcAutoConfigSkuWarehouse == null || dcAutoConfigSkuWarehouse.getStatus().equals(0)) { if (dcAutoConfigSkuWarehouse == null || dcAutoConfigSkuWarehouse.getStatus().equals(0)) {
if (forecastFluctuationList != null && forecastFluctuationList.size() > 0) { if (forecastFluctuationList != null && forecastFluctuationList.size() > 0) {
//拿最早的时间 + 最晚的时间, SKU-仓库维度只放一条 //拿最早的时间 + 最晚的时间, SKU-仓库维度只放一条
......
table-name=dc_mid_cost_first_order table-name=dc_auto_turnover
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