Commit 3ee5b686 by yinyong

JIT自动周转安全库存

parent 0981ef33
package com.bailuntec.domain.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class DcAutoJitTag {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.id
*
* @mbg.generated
*/
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.tag_name
*
* @mbg.generated
*/
private String tagName;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.is_gt_7
*
* @mbg.generated
*/
private Integer isGt7;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.enable_7
*
* @mbg.generated
*/
private Integer enable7;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.quantity_sales7
*
* @mbg.generated
*/
private BigDecimal quantitySales7;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.is_gt_14
*
* @mbg.generated
*/
private Integer isGt14;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.enable_14
*
* @mbg.generated
*/
private Integer enable14;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.quantity_sales14
*
* @mbg.generated
*/
private BigDecimal quantitySales14;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.quantity_safe_inventory
*
* @mbg.generated
*/
private BigDecimal quantitySafeInventory;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.level
*
* @mbg.generated
*/
private Integer level;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.is_eliminate
*
* @mbg.generated
*/
private Integer isEliminate;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag.gmt_update
*
* @mbg.generated
*/
private LocalDateTime gmtUpdate;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", tagName=").append(tagName);
sb.append(", isGt7=").append(isGt7);
sb.append(", enable7=").append(enable7);
sb.append(", quantitySales7=").append(quantitySales7);
sb.append(", isGt14=").append(isGt14);
sb.append(", enable14=").append(enable14);
sb.append(", quantitySales14=").append(quantitySales14);
sb.append(", quantitySafeInventory=").append(quantitySafeInventory);
sb.append(", level=").append(level);
sb.append(", isEliminate=").append(isEliminate);
sb.append(", gmtUpdate=").append(gmtUpdate);
sb.append("]");
return sb.toString();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DcAutoJitTag other = (DcAutoJitTag) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getTagName() == null ? other.getTagName() == null : this.getTagName().equals(other.getTagName()))
&& (this.getIsGt7() == null ? other.getIsGt7() == null : this.getIsGt7().equals(other.getIsGt7()))
&& (this.getEnable7() == null ? other.getEnable7() == null : this.getEnable7().equals(other.getEnable7()))
&& (this.getQuantitySales7() == null ? other.getQuantitySales7() == null : this.getQuantitySales7().equals(other.getQuantitySales7()))
&& (this.getIsGt14() == null ? other.getIsGt14() == null : this.getIsGt14().equals(other.getIsGt14()))
&& (this.getEnable14() == null ? other.getEnable14() == null : this.getEnable14().equals(other.getEnable14()))
&& (this.getQuantitySales14() == null ? other.getQuantitySales14() == null : this.getQuantitySales14().equals(other.getQuantitySales14()))
&& (this.getQuantitySafeInventory() == null ? other.getQuantitySafeInventory() == null : this.getQuantitySafeInventory().equals(other.getQuantitySafeInventory()))
&& (this.getLevel() == null ? other.getLevel() == null : this.getLevel().equals(other.getLevel()))
&& (this.getIsEliminate() == null ? other.getIsEliminate() == null : this.getIsEliminate().equals(other.getIsEliminate()))
&& (this.getGmtUpdate() == null ? other.getGmtUpdate() == null : this.getGmtUpdate().equals(other.getGmtUpdate()));
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getTagName() == null) ? 0 : getTagName().hashCode());
result = prime * result + ((getIsGt7() == null) ? 0 : getIsGt7().hashCode());
result = prime * result + ((getEnable7() == null) ? 0 : getEnable7().hashCode());
result = prime * result + ((getQuantitySales7() == null) ? 0 : getQuantitySales7().hashCode());
result = prime * result + ((getIsGt14() == null) ? 0 : getIsGt14().hashCode());
result = prime * result + ((getEnable14() == null) ? 0 : getEnable14().hashCode());
result = prime * result + ((getQuantitySales14() == null) ? 0 : getQuantitySales14().hashCode());
result = prime * result + ((getQuantitySafeInventory() == null) ? 0 : getQuantitySafeInventory().hashCode());
result = prime * result + ((getLevel() == null) ? 0 : getLevel().hashCode());
result = prime * result + ((getIsEliminate() == null) ? 0 : getIsEliminate().hashCode());
result = prime * result + ((getGmtUpdate() == null) ? 0 : getGmtUpdate().hashCode());
return result;
}
}
\ No newline at end of file
package com.bailuntec.domain.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
@Data
public class DcAutoJitTagLog {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.id
*
* @mbg.generated
*/
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.bailun_sku
*
* @mbg.generated
*/
private String bailunSku;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.date
*
* @mbg.generated
*/
private LocalDate date;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.tag_id
*
* @mbg.generated
*/
private Integer tagId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.tag_json
*
* @mbg.generated
*/
private String tagJson;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.quantity_sales7
*
* @mbg.generated
*/
private BigDecimal quantitySales7;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_auto_jit_tag_log.quantity_sales14
*
* @mbg.generated
*/
private BigDecimal quantitySales14;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", id=").append(id);
sb.append(", bailunSku=").append(bailunSku);
sb.append(", date=").append(date);
sb.append(", tagId=").append(tagId);
sb.append(", tagJson=").append(tagJson);
sb.append(", quantitySales7=").append(quantitySales7);
sb.append(", quantitySales14=").append(quantitySales14);
sb.append("]");
return sb.toString();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DcAutoJitTagLog other = (DcAutoJitTagLog) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getBailunSku() == null ? other.getBailunSku() == null : this.getBailunSku().equals(other.getBailunSku()))
&& (this.getDate() == null ? other.getDate() == null : this.getDate().equals(other.getDate()))
&& (this.getTagId() == null ? other.getTagId() == null : this.getTagId().equals(other.getTagId()))
&& (this.getTagJson() == null ? other.getTagJson() == null : this.getTagJson().equals(other.getTagJson()))
&& (this.getQuantitySales7() == null ? other.getQuantitySales7() == null : this.getQuantitySales7().equals(other.getQuantitySales7()))
&& (this.getQuantitySales14() == null ? other.getQuantitySales14() == null : this.getQuantitySales14().equals(other.getQuantitySales14()));
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getBailunSku() == null) ? 0 : getBailunSku().hashCode());
result = prime * result + ((getDate() == null) ? 0 : getDate().hashCode());
result = prime * result + ((getTagId() == null) ? 0 : getTagId().hashCode());
result = prime * result + ((getTagJson() == null) ? 0 : getTagJson().hashCode());
result = prime * result + ((getQuantitySales7() == null) ? 0 : getQuantitySales7().hashCode());
result = prime * result + ((getQuantitySales14() == null) ? 0 : getQuantitySales14().hashCode());
return result;
}
}
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcAutoJitTagLog;
import com.bailuntec.domain.example.DcAutoJitTagLogExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DcAutoJitTagLogMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
long countByExample(DcAutoJitTagLogExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int deleteByExample(DcAutoJitTagLogExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int insert(DcAutoJitTagLog record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int insertSelective(DcAutoJitTagLog record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcAutoJitTagLog selectOneByExample(DcAutoJitTagLogExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
List<DcAutoJitTagLog> selectByExample(DcAutoJitTagLogExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
DcAutoJitTagLog selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcAutoJitTagLog record, @Param("example") DcAutoJitTagLogExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcAutoJitTagLog record, @Param("example") DcAutoJitTagLogExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcAutoJitTagLog record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
*/
int updateByPrimaryKey(DcAutoJitTagLog record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcAutoJitTagLog record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag_log
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcAutoJitTagLog record);
}
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcAutoJitTag;
import com.bailuntec.domain.example.DcAutoJitTagExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DcAutoJitTagMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
long countByExample(DcAutoJitTagExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int deleteByExample(DcAutoJitTagExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int insert(DcAutoJitTag record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int insertSelective(DcAutoJitTag record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcAutoJitTag selectOneByExample(DcAutoJitTagExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
List<DcAutoJitTag> selectByExample(DcAutoJitTagExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
DcAutoJitTag selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcAutoJitTag record, @Param("example") DcAutoJitTagExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcAutoJitTag record, @Param("example") DcAutoJitTagExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcAutoJitTag record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
*/
int updateByPrimaryKey(DcAutoJitTag record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcAutoJitTag record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_auto_jit_tag
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcAutoJitTag record);
}
\ No newline at end of file
...@@ -329,7 +329,7 @@ public class AutoTurnoverJob extends PointJob { ...@@ -329,7 +329,7 @@ public class AutoTurnoverJob extends PointJob {
* 可以支持配置 * 可以支持配置
* 2019-04-22更新 不管逾期 * 2019-04-22更新 不管逾期
*/ */
BigDecimal totalSafeInventory = calculateSafeInventory(bailunSku, warehouseCode, bailunFirstLevelCatagoryId, dcAutoSales, JSON.toJSONString(forecastSalesList), dcAutoTurnover); BigDecimal totalSafeInventory = calculateSafeInventory(turnoverSku, bailunSku, warehouseCode, bailunFirstLevelCatagoryId, dcAutoSales, JSON.toJSONString(forecastSalesList), dcAutoTurnover);
Integer moq = turnoverSku.getMoq(); Integer moq = turnoverSku.getMoq();
/* /*
...@@ -1077,9 +1077,108 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1077,9 +1077,108 @@ public class AutoTurnoverJob extends PointJob {
} }
} }
private BigDecimal calculateSafeInventory(String bailunSku, String warehouseCode, Integer private BigDecimal calculateSafeInventory(DcBaseSku turnoverSku, String bailunSku, String warehouseCode, Integer
bailunFirstLevelCatagoryId, DcAutoSales dcAutoSales, String forecastSalesListJson, DcAutoTurnover dcAutoTurnover) { bailunFirstLevelCatagoryId, DcAutoSales dcAutoSales, String forecastSalesListJson, DcAutoTurnover dcAutoTurnover) {
/* /*
* 先判断是否JIT 仓库是广州01 warehouse_code 且是那三个销售员 turnoversku
*
*/
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)) {
List<BigDecimal> historyThirtySalesList = JSON.parseObject(dcAutoSales.getHistorySalesDetails(), new TypeReference<List<BigDecimal>>() {
});
BigDecimal weightingAvgSales = caculateWeightingAvgSales(BigDecimal.valueOf(0.3), BigDecimal.valueOf(0.3), BigDecimal.valueOf(0.4), historyThirtySalesList);
DcAutoJitTagMapper dcAutoJitTagMapper = SessionUtil.getSession().getMapper(DcAutoJitTagMapper.class);
List<DcAutoJitTag> dcAutoJitTags = dcAutoJitTagMapper.selectByExample(DcAutoJitTagExample.newAndCreateCriteria().andIsEliminateEqualTo(1).example());
BigDecimal saveDays = BigDecimal.ZERO;
for(DcAutoJitTag dcAutoJitTag : dcAutoJitTags) {
if(dcAutoJitTag.getEnable7() == 1) {
switch (dcAutoJitTag.getIsGt7()){
case 1:
if(dcAutoSales.getSevendaySales() > dcAutoJitTag.getQuantitySales7().intValue()) {
break;
}else {
continue;
}
case 2:
if(dcAutoSales.getSevendaySales() == dcAutoJitTag.getQuantitySales7().intValue()) {
break;
}else {
continue;
}
case 3:
if(dcAutoSales.getSevendaySales() < dcAutoJitTag.getQuantitySales7().intValue()) {
break;
}else {
continue;
}
case 4:
if(dcAutoSales.getSevendaySales() >= dcAutoJitTag.getQuantitySales7().intValue()) {
break;
}else {
continue;
}
case 5:
if(dcAutoSales.getSevendaySales() <= dcAutoJitTag.getQuantitySales7().intValue()) {
break;
}else {
continue;
}
default:
continue;
}
}
if(dcAutoJitTag.getEnable14() == 1) {
switch (dcAutoJitTag.getIsGt14()){
case 1:
if(dcAutoSales.getFourteendaySales() > dcAutoJitTag.getQuantitySales14().intValue()) {
break;
}else {
continue;
}
case 2:
if(dcAutoSales.getFourteendaySales() == dcAutoJitTag.getQuantitySales14().intValue()) {
break;
}else {
continue;
}
case 3:
if(dcAutoSales.getFourteendaySales() < dcAutoJitTag.getQuantitySales14().intValue()) {
break;
}else {
continue;
}
case 4:
if(dcAutoSales.getFourteendaySales() >= dcAutoJitTag.getQuantitySales14().intValue()) {
break;
}else {
continue;
}
case 5:
if(dcAutoSales.getFourteendaySales() <= dcAutoJitTag.getQuantitySales14().intValue()) {
break;
}else {
continue;
}
default:
continue;
}
}
saveDays = dcAutoJitTag.getQuantitySafeInventory();
DcAutoJitTagLogMapper dcAutoJitTagLogMapper = SessionUtil.getSession().getMapper(DcAutoJitTagLogMapper.class);
DcAutoJitTagLog dcAutoJitTagLog = new DcAutoJitTagLog();
dcAutoJitTagLog.setBailunSku(bailunSku);
dcAutoJitTagLog.setDate(LocalDate.now());
dcAutoJitTagLog.setQuantitySales7(dcAutoJitTag.getQuantitySales7());
dcAutoJitTagLog.setQuantitySales14(dcAutoJitTag.getQuantitySales14());
dcAutoJitTagLog.setTagId(dcAutoJitTag.getId());
dcAutoJitTagLog.setTagJson(JSONObject.toJSONString(dcAutoJitTag));
dcAutoJitTagLogMapper.upsertSelective(dcAutoJitTagLog);
break;
}
dcAutoTurnover.setDailyWeightedSales(weightingAvgSales.multiply(saveDays));
return weightingAvgSales;
}else{
/*
* 手动设置 * 手动设置
* 1. 根据仓库 + SKU在表里找dc_auto_config_safe_inventory * 1. 根据仓库 + SKU在表里找dc_auto_config_safe_inventory
* 2. 根据仓库 + 类目在表里找dc_auto_config_safe_inventory * 2. 根据仓库 + 类目在表里找dc_auto_config_safe_inventory
...@@ -1158,6 +1257,7 @@ public class AutoTurnoverJob extends PointJob { ...@@ -1158,6 +1257,7 @@ public class AutoTurnoverJob extends PointJob {
} finally { } finally {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
}
} }
......
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