Commit e2881620 by liyanlin

fix

parent 364a3594
...@@ -11,8 +11,8 @@ import java.util.Date; ...@@ -11,8 +11,8 @@ import java.util.Date;
@Repository @Repository
public interface DcSemiDailyStockMapper { public interface DcSemiDailyStockMapper {
@Insert("insert into dc_semi_daily_stock(day,inventory_amount,sku_code,sku_name,stock_quantity,price,warehouse_id,warehouse_name,redundancy_stock,type_id,type_name,product_category_id,product_category_name) " + @Insert("insert ignore into dc_semi_daily_stock(day,inventory_amount,sku_code,sku_name,stock_quantity,price,warehouse_id,warehouse_name,type_id,type_name,product_category_id,product_category_id_name,redundancy_stock) " +
"select #{lastDay},l.final_stock * ifnull(ol.price,0),l.sku_code,l.sku_name,l.final_stock,ifnull(ol.price,0),l.warehouse_id,l.warehouse_name,l.type_id,t.type_name,l.product_category_id,l.product_category_name," + "select #{lastDay},l.final_stock * ifnull(ol.price,0),l.sku_code,l.sku_name,l.final_stock,ifnull(ol.price,0),l.warehouse_id,l.warehouse_name,l.type_id,l.type_name,l.product_category_id,l.product_category_name," +
"case when l.redundancy_stock is null then 0 when l.redundancy_stock < 0 then 0 else l.redundancy_stock end " + "case when l.redundancy_stock is null then 0 when l.redundancy_stock < 0 then 0 else l.redundancy_stock end " +
"from dc_semi_stock_log l left join dc_semi_supplier_offer_log ol on l.sku_code = ol.sku_code") "from dc_semi_stock_log l left join dc_semi_supplier_offer_log ol on l.sku_code = ol.sku_code")
void insertSemiDailyStock(@Param("lastDay") Date lastDay); void insertSemiDailyStock(@Param("lastDay") Date lastDay);
......
...@@ -9,17 +9,6 @@ import java.util.List; ...@@ -9,17 +9,6 @@ import java.util.List;
@Repository @Repository
public interface DcSemiStockLogMapper { public interface DcSemiStockLogMapper {
@Insert("<script>" +
"insert into dc_semi_stock_log(log_id,sku_code,sku_name,log_type_id,log_type,log_quantity,final_stock,warehouse_id,warehouse_name,create_time," +
"redundancy_stock,warehouse_type,type_id,type_name,product_category_id,product_category_name) values" +
"<foreach collection='list' item='item' index='index' separator=','>" +
"(#{item.logId},#{item.skuCode},#{item.skuName},#{item.logTypeId},#{item.logType},#{item.logQuantity},#{item.finalStock},#{item.warehouseId},#{item.warehouseName}," +
"#{item.createTime},#{item.redundancyStock},#{item.warehouseType})" +
"</foreach>" +
" on duplicate key update log_id=values(log_id),sku_name=values(sku_name),log_type_id=values(log_type_id),log_type=values(log_type),log_quantity=values(log_quantity)," +
"final_stock=values(final_stock),warehouse_id=values(warehouse_id),warehouse_name=values(warehouse_name),create_time=values(create_time)," +
"redundancy_stock=values(redundancy_stock),warehouse_type=values(warehouse_type),type_id=#{typeId},type_name=#{typeName}" +
",product_category_id=#{productCategoryId},product_category_name=#{productCategoryName}" +
"</script>")
void insertOrUpdateSemiStockLog(List<SemiStockLogDTO> semiStockLogDTOList); void insertOrUpdateSemiStockLog(List<SemiStockLogDTO> semiStockLogDTOList);
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bailuntec.balancesheet.mapper.DcSemiStockLogMapper">
<insert id="insertOrUpdateSemiStockLog" parameterType="java.util.ArrayList">
insert into dc_semi_stock_log(
log_id,
sku_code,
sku_name,
log_type_id,
log_type,
log_quantity,
final_stock,
warehouse_id,
warehouse_name,
create_time,
redundancy_stock,
warehouse_type,
type_id,
type_name,
product_category_id,
product_category_name
) values
<foreach collection='list' item='item' index='index' separator=','>
(
#{item.logId},
#{item.skuCode},
#{item.skuName},
#{item.logTypeId},
#{item.logType},
#{item.logQuantity},
#{item.finalStock},
#{item.warehouseId},
#{item.warehouseName},
#{item.createTime},
#{item.redundancyStock},
#{item.warehouseType}
<if test="item.typeId != null">
,#{item.typeId}
</if>
<if test="item.typeId == null">
,0
</if>
<if test="item.typeName != null">
,#{item.typeName}
</if>
<if test="item.typeName == null">
,'缺失'
</if>
<if test="item.productCategoryId != null">
,#{item.productCategoryId}
</if>
<if test="item.productCategoryId == null">
,0
</if>
<if test="item.productCategoryName != null">
,#{item.productCategoryName}
</if>
<if test="item.productCategoryName == null">
,'缺失'
</if>
)
</foreach>
on duplicate key update
log_id=values(log_id),
sku_name=values(sku_name),
log_type_id=values(log_type_id),
log_type=values(log_type),
log_quantity=values(log_quantity),
final_stock=values(final_stock),
warehouse_id=values(warehouse_id),
warehouse_name=values(warehouse_name),
create_time=values(create_time),
redundancy_stock=values(redundancy_stock),
warehouse_type=values(warehouse_type),
type_id=values(type_id),
type_name=values(type_name),
product_category_id=values(product_category_id),
product_category_name=values(product_category_name)
</insert>
</mapper>
...@@ -84,6 +84,10 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService { ...@@ -84,6 +84,10 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
int duration1 = BigDecimal.valueOf(turnoverDays).multiply(dcAutoSalesForecastStageConfig.getOneRatio()).intValue(); int duration1 = BigDecimal.valueOf(turnoverDays).multiply(dcAutoSalesForecastStageConfig.getOneRatio()).intValue();
int duration2 = BigDecimal.valueOf(turnoverDays).multiply(dcAutoSalesForecastStageConfig.getTwoRatio()).intValue(); int duration2 = BigDecimal.valueOf(turnoverDays).multiply(dcAutoSalesForecastStageConfig.getTwoRatio()).intValue();
int duration3 = turnoverDays - duration1 - duration2; int duration3 = turnoverDays - duration1 - duration2;
if (dcAutoSalesForecastStageConfig.getThreeRatio().compareTo(BigDecimal.ZERO) == 0) {
duration2 += duration3;
duration3 = 0;
}
int oneN1 = dcAutoSalesForecastStageConfig.getOneN1().intValue(); int oneN1 = dcAutoSalesForecastStageConfig.getOneN1().intValue();
...@@ -97,7 +101,10 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService { ...@@ -97,7 +101,10 @@ public class AutoTurnoverServiceImpl implements AutoTurnoverService {
int threeN5 = dcAutoSalesForecastStageConfig.getThreeN5().intValue(); int threeN5 = dcAutoSalesForecastStageConfig.getThreeN5().intValue();
/*第一部分预测*/ /*第一部分预测*/
BigDecimal duration1ForecastSellerNum = Optional.ofNullable(dcBaseOmsSkuMapper.omsSkuSellerCount(midNight.minusDays(dcAutoSalesForecastStageConfig.getOneN1().intValue()), midNight, bailunSku, warehouseCode, oneN1 == 0 ? 1 : oneN1, dcAutoSalesForecastConfig.getDataSourcePlatform())).orElse(BigDecimal.ZERO) BigDecimal duration1ForecastSellerNum = Optional.ofNullable(dcBaseOmsSkuMapper
.omsSkuSellerCount(midNight.minusDays(dcAutoSalesForecastStageConfig.getOneN1().intValue()), midNight, bailunSku, warehouseCode, oneN1 == 0 ? 1 : oneN1, dcAutoSalesForecastConfig.getDataSourcePlatform())
)
.orElse(BigDecimal.ZERO)
.multiply(dcAutoSalesForecastStageConfig.getOneN2()) .multiply(dcAutoSalesForecastStageConfig.getOneN2())
.add(Optional.ofNullable(dcBaseOmsSkuMapper.omsSkuSellerCount(midNight.minusDays(dcAutoSalesForecastStageConfig.getOneN3().intValue()), midNight, bailunSku, warehouseCode, oneN3 == 0 ? 1 : oneN3, dcAutoSalesForecastConfig.getDataSourcePlatform())).orElse(BigDecimal.ZERO) .add(Optional.ofNullable(dcBaseOmsSkuMapper.omsSkuSellerCount(midNight.minusDays(dcAutoSalesForecastStageConfig.getOneN3().intValue()), midNight, bailunSku, warehouseCode, oneN3 == 0 ? 1 : oneN3, dcAutoSalesForecastConfig.getDataSourcePlatform())).orElse(BigDecimal.ZERO)
.multiply(dcAutoSalesForecastStageConfig.getOneN4())) .multiply(dcAutoSalesForecastStageConfig.getOneN4()))
......
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