Commit ec943ed6 by wutong

利用物流单费用计算头程费

parent 62708ece
package com.bailuntec.domain.entity;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DcMidCostFirstOrder {
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.id
*
* @mbg.generated
*/
private Integer id;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.cost_first
*
* @mbg.generated
*/
private BigDecimal costFirst;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.bailun_sku
*
* @mbg.generated
*/
private String bailunSku;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.warehouse_code
*
* @mbg.generated
*/
private String warehouseCode;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.channel_order_id
*
* @mbg.generated
*/
private String channelOrderId;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.weight_ratio
*
* @mbg.generated
*/
private BigDecimal weightRatio;
/**
*
* This field was generated by MyBatis Generator.
* This field corresponds to the database column dc_mid_cost_first_order.quantity
*
* @mbg.generated
*/
private Integer quantity;
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @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(", costFirst=").append(costFirst);
sb.append(", bailunSku=").append(bailunSku);
sb.append(", warehouseCode=").append(warehouseCode);
sb.append(", channelOrderId=").append(channelOrderId);
sb.append(", weightRatio=").append(weightRatio);
sb.append(", quantity=").append(quantity);
sb.append("]");
return sb.toString();
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
DcMidCostFirstOrder other = (DcMidCostFirstOrder) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getCostFirst() == null ? other.getCostFirst() == null : this.getCostFirst().equals(other.getCostFirst()))
&& (this.getBailunSku() == null ? other.getBailunSku() == null : this.getBailunSku().equals(other.getBailunSku()))
&& (this.getWarehouseCode() == null ? other.getWarehouseCode() == null : this.getWarehouseCode().equals(other.getWarehouseCode()))
&& (this.getChannelOrderId() == null ? other.getChannelOrderId() == null : this.getChannelOrderId().equals(other.getChannelOrderId()))
&& (this.getWeightRatio() == null ? other.getWeightRatio() == null : this.getWeightRatio().equals(other.getWeightRatio()))
&& (this.getQuantity() == null ? other.getQuantity() == null : this.getQuantity().equals(other.getQuantity()));
}
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getCostFirst() == null) ? 0 : getCostFirst().hashCode());
result = prime * result + ((getBailunSku() == null) ? 0 : getBailunSku().hashCode());
result = prime * result + ((getWarehouseCode() == null) ? 0 : getWarehouseCode().hashCode());
result = prime * result + ((getChannelOrderId() == null) ? 0 : getChannelOrderId().hashCode());
result = prime * result + ((getWeightRatio() == null) ? 0 : getWeightRatio().hashCode());
result = prime * result + ((getQuantity() == null) ? 0 : getQuantity().hashCode());
return result;
}
}
\ No newline at end of file
package com.bailuntec.domain.constant;
public interface Constant {
int PAGE_SIZE = 1000;
}
package com.bailuntec.domain.pojo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class MidCostFirst {
private String bailunSku;
private String warehouseCode;
private BigDecimal totalCostFirst;
private int totalCount;
}
package com.bailuntec.job; package com.bailuntec.job;
import com.bailuntec.domain.constant.CommonConstant; import com.bailuntec.domain.constant.CommonConstant;
import com.bailuntec.domain.entity.DcBaseCostFirst; import com.bailuntec.domain.entity.*;
import com.bailuntec.domain.entity.DcMidCostFirst; import com.bailuntec.domain.example.DcBaseCostFirstExample;
import com.bailuntec.domain.entity.JobPointLog; import com.bailuntec.domain.example.DcBaseSkuExample;
import com.bailuntec.domain.example.DcMidCostFirstExample; import com.bailuntec.domain.example.DcMidCostFirstExample;
import com.bailuntec.mapper.DcBaseCostFirstMapper; import com.bailuntec.domain.example.DcMidCostFirstOrderExample;
import com.bailuntec.mapper.DcMidCostFirstMapper; import com.bailuntec.mapper.*;
import com.bailuntec.mapper.JobPointLogMapper;
import com.bailuntec.support.PointJob; import com.bailuntec.support.PointJob;
import com.bailuntec.utils.SessionUtil; import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.api.ShardingContext; import com.dangdang.ddframe.job.api.ShardingContext;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
public class CalculateCostFirstJob extends PointJob { public class CalculateCostFirstJob extends PointJob {
@Override @Override
public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) { public void executeJob(ShardingContext shardingContext, JobPointLog jobPointLog) {
boolean haseNextPage = true; int countChannelOrder;
try {
DcBaseCostFirstMapper dcBaseCostFirstMapper = SessionUtil.getSession().getMapper(DcBaseCostFirstMapper.class);
countChannelOrder = dcBaseCostFirstMapper.countChannelOrder();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败", e);
} finally {
SessionUtil.closeSession();
}
int totalPage = getChannelOrderPage(countChannelOrder,jobPointLog);
do { do {
try { try {
DcBaseCostFirstMapper dcBaseCostFirstMapper = SessionUtil.getSession().getMapper(DcBaseCostFirstMapper.class); DcBaseCostFirstMapper dcBaseCostFirstMapper = SessionUtil.getSession().getMapper(DcBaseCostFirstMapper.class);
DcMidCostFirstMapper dcMidCostFirstMapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class); //拿到物流单号, 将物流单中每个SKU的费用算出来
List<DcBaseCostFirst> dcBaseCostFirsts = dcBaseCostFirstMapper.listSkuWarehouseCostFirst((jobPointLog.getPageIndex() - 1) * jobPointLog.getPageSize(), jobPointLog.getPageSize()); List<String> channelOrderIdList = dcBaseCostFirstMapper.listChannelOrderId(jobPointLog.getPageIndex() * jobPointLog.getPageSize(), jobPointLog.getPageSize());
if (dcBaseCostFirsts != null && dcBaseCostFirsts.size() > 0) { if (channelOrderIdList != null && channelOrderIdList.size() > 0) {
for (DcBaseCostFirst dcBaseCostFirst : dcBaseCostFirsts) { for (String channelOrderId : channelOrderIdList) {
BigDecimal unitSkuCostFirst = dcBaseCostFirst.getCostFirst().divide(BigDecimal.valueOf(dcBaseCostFirst.getQuantity()), 3, RoundingMode.HALF_EVEN); DcBaseCostFirstMapper dcBaseCostFirstMapperFor = SessionUtil.getSession().getMapper(DcBaseCostFirstMapper.class);
DcMidCostFirst dcMidCostFirst = new DcMidCostFirst(); List<DcBaseCostFirst> dcBaseCostFirsts = dcBaseCostFirstMapperFor.selectByExample(DcBaseCostFirstExample.newAndCreateCriteria().andChannelOrderIdEqualTo(channelOrderId).example());
dcMidCostFirst.setBailunSku(dcBaseCostFirst.getBailunSku()); handleChannelOrderSku(dcBaseCostFirsts);
dcMidCostFirst.setWarehouseCode(dcBaseCostFirst.getWarehouseCode());
dcMidCostFirst.setCostFirst(unitSkuCostFirst.divide(CommonConstant.BIGDECIMAL_TWO));
int i = dcMidCostFirstMapper.updateByExampleSelective(dcMidCostFirst, DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(dcMidCostFirst.getBailunSku()).andWarehouseCodeEqualTo(dcMidCostFirst.getWarehouseCode()).example());
if (i == 0) {
dcMidCostFirstMapper.insertSelective(dcMidCostFirst);
}
} }
} else {
haseNextPage = false;
}
if (jobPointLog.getPageIndex() % 8 == 0) {
JobPointLogMapper mapper = SessionUtil.getSession().getMapper(JobPointLogMapper.class);
mapper.upsertSelective(jobPointLog);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -52,7 +51,67 @@ public class CalculateCostFirstJob extends PointJob { ...@@ -52,7 +51,67 @@ public class CalculateCostFirstJob extends PointJob {
SessionUtil.closeSession(); SessionUtil.closeSession();
} }
jobPointLog.setPageIndex(jobPointLog.getPageIndex() + 1); jobPointLog.setPageIndex(jobPointLog.getPageIndex() + 1);
} while (haseNextPage); } while (jobPointLog.getPageIndex().intValue() <= totalPage);
jobPointLog.setPageIndex(1); jobPointLog.setPageIndex(0);
}
public void handleChannelOrderSku(List<DcBaseCostFirst> dcBaseCostFirsts) {
HashMap<String, DcBaseCostFirst> map = new HashMap<>();
//物流单的总重量
BigDecimal totalWeight = BigDecimal.ZERO;
for (DcBaseCostFirst dcBaseCostFirst : dcBaseCostFirsts) {
DcBaseSku dcBaseSku = null;
try {
DcBaseSkuMapper dcBaseSkuMapper = SessionUtil.getSession().getMapper(DcBaseSkuMapper.class);
dcBaseSku = dcBaseSkuMapper.selectOneByExample(DcBaseSkuExample.newAndCreateCriteria().andBailunSkuEqualTo(dcBaseCostFirst.getBailunSku()).example());
} catch (Exception e) {
throw new RuntimeException("MYBATIS操作DB失败");
} finally {
SessionUtil.closeSession();
}
//物流单内单位SKU多个quantity的总重量
BigDecimal skuTotalWeight = dcBaseSku.getWeight().multiply(BigDecimal.valueOf(dcBaseCostFirst.getQuantity()));
dcBaseCostFirst.setSkuWeight(skuTotalWeight);
totalWeight = totalWeight.add(skuTotalWeight);
if (map.get(dcBaseSku.getBailunSku()) == null) {
map.put(dcBaseSku.getBailunSku(), dcBaseCostFirst);
} else {
dcBaseCostFirst.setSkuWeight(dcBaseCostFirst.getSkuWeight().add(skuTotalWeight));
map.put(dcBaseSku.getBailunSku(), dcBaseCostFirst);
}
}
DcMidCostFirstOrder dcMidCostFirstOrder = new DcMidCostFirstOrder();
for (Map.Entry<String, DcBaseCostFirst> entry : map.entrySet()) {
DcBaseCostFirst dcBaseCostFirst = entry.getValue();
BigDecimal skuWeightRatio = dcBaseCostFirst.getSkuWeight().divide(totalWeight, 3, RoundingMode.HALF_EVEN);
BigDecimal skuCostFirst = dcBaseCostFirst.getCostFirst().multiply(skuWeightRatio).setScale(3, RoundingMode.HALF_EVEN);
dcMidCostFirstOrder.setBailunSku(dcBaseCostFirst.getBailunSku());
dcMidCostFirstOrder.setWarehouseCode(dcBaseCostFirst.getWarehouseCode());
dcMidCostFirstOrder.setChannelOrderId(dcBaseCostFirst.getChannelOrderId());
dcMidCostFirstOrder.setQuantity(dcBaseCostFirst.getQuantity());
dcMidCostFirstOrder.setWeightRatio(skuWeightRatio);
//将费用算到单个SKU上
dcMidCostFirstOrder.setCostFirst(skuCostFirst.divide(BigDecimal.valueOf(dcBaseCostFirst.getQuantity()), 3, RoundingMode.HALF_EVEN));
try {
DcMidCostFirstOrderMapper dcMidCostFirstOrderMapper = SessionUtil.getSession().getMapper(DcMidCostFirstOrderMapper.class);
int i = dcMidCostFirstOrderMapper.updateByExampleSelective(dcMidCostFirstOrder, DcMidCostFirstOrderExample.newAndCreateCriteria().andBailunSkuEqualTo(dcMidCostFirstOrder.getBailunSku()).andChannelOrderIdEqualTo(dcMidCostFirstOrder.getChannelOrderId()).example());
if (i == 0) {
dcMidCostFirstOrderMapper.insertSelective(dcMidCostFirstOrder);
}
} catch (Exception e) {
throw new RuntimeException("MYBATIS操作DB失败");
} finally {
SessionUtil.closeSession();
}
}
}
private int getChannelOrderPage(int countChannelOrder, JobPointLog jobPointLog) {
if (countChannelOrder % jobPointLog.getPageSize() == 0) {
return countChannelOrder / jobPointLog.getPageSize();
}
return countChannelOrder / jobPointLog.getPageSize() + 1;
} }
} }
package com.bailuntec.listener; package com.bailuntec.listener;
import com.bailuntec.domain.constant.CommonConstant;
import com.bailuntec.domain.constant.Constant;
import com.bailuntec.domain.entity.DcMidCostFirst;
import com.bailuntec.domain.example.DcMidCostFirstExample;
import com.bailuntec.domain.pojo.MidCostFirst;
import com.bailuntec.mapper.DcMidCostFirstMapper;
import com.bailuntec.mapper.DcMidCostFirstOrderMapper;
import com.bailuntec.utils.SessionUtil;
import com.dangdang.ddframe.job.executor.ShardingContexts; import com.dangdang.ddframe.job.executor.ShardingContexts;
import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener; import com.dangdang.ddframe.job.lite.api.listener.ElasticJobListener;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
public class CalculateCostFirstListener implements ElasticJobListener { public class CalculateCostFirstListener implements ElasticJobListener {
@Override @Override
public void beforeJobExecuted(ShardingContexts shardingContexts) { public void beforeJobExecuted(ShardingContexts shardingContexts) {
...@@ -11,6 +24,34 @@ public class CalculateCostFirstListener implements ElasticJobListener { ...@@ -11,6 +24,34 @@ public class CalculateCostFirstListener implements ElasticJobListener {
@Override @Override
public void afterJobExecuted(ShardingContexts shardingContexts) { public void afterJobExecuted(ShardingContexts shardingContexts) {
DcMidCostFirstOrderMapper dcMidCostFirstOrderMapper = SessionUtil.getSession().getMapper(DcMidCostFirstOrderMapper.class);
DcMidCostFirstMapper dcMidCostFirsMapper = SessionUtil.getSession().getMapper(DcMidCostFirstMapper.class);
int countSkuWarehouse = dcMidCostFirstOrderMapper.countSkuWarehouse();
int skuWarehouseTotalPage = getSkuWarehouseTotalPage(countSkuWarehouse);
int index = 0;
do {
List<MidCostFirst> midCostFirstList = dcMidCostFirstOrderMapper.listSkuWarehouse(index * Constant.PAGE_SIZE,Constant.PAGE_SIZE);
if (midCostFirstList != null && midCostFirstList.size() > 0) {
DcMidCostFirst dcMidCostFirst = new DcMidCostFirst();
for (MidCostFirst midCostFirst : midCostFirstList) {
dcMidCostFirst.setBailunSku(midCostFirst.getBailunSku());
dcMidCostFirst.setWarehouseCode(midCostFirst.getWarehouseCode());
BigDecimal costFirst = midCostFirst.getTotalCostFirst().divide(BigDecimal.valueOf(midCostFirst.getTotalCount()), 3 , RoundingMode.HALF_EVEN);
dcMidCostFirst.setCostFirst(costFirst);
int i = dcMidCostFirsMapper.updateByExampleSelective(dcMidCostFirst,DcMidCostFirstExample.newAndCreateCriteria().andBailunSkuEqualTo(dcMidCostFirst.getBailunSku()).andWarehouseCodeEqualTo(dcMidCostFirst.getWarehouseCode()).example());
if (i == 0) {
dcMidCostFirsMapper.insertSelective(dcMidCostFirst);
}
}
}
index++;
} while (index < skuWarehouseTotalPage);
}
private int getSkuWarehouseTotalPage(int countSkuWarehouse) {
if (countSkuWarehouse % Constant.PAGE_SIZE == 0) {
return countSkuWarehouse / Constant.PAGE_SIZE;
}
return countSkuWarehouse / Constant.PAGE_SIZE + 1;
} }
} }
...@@ -122,5 +122,7 @@ public interface DcBaseCostFirstMapper { ...@@ -122,5 +122,7 @@ public interface DcBaseCostFirstMapper {
*/ */
int upsertSelective(DcBaseCostFirst record); int upsertSelective(DcBaseCostFirst record);
List<DcBaseCostFirst> listSkuWarehouseCostFirst(@Param("v1") Integer v1, @Param("v2") Integer v2); int countChannelOrder();
List<String> listChannelOrderId(@Param("v1") Integer v1, @Param("v2") Integer v2);
} }
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcBaseSku;
import com.bailuntec.domain.example.DcBaseSkuExample;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface DcBaseSkuMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
long countByExample(DcBaseSkuExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int deleteByExample(DcBaseSkuExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int insert(DcBaseSku record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int insertSelective(DcBaseSku record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcBaseSku selectOneByExample(DcBaseSkuExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
List<DcBaseSku> selectByExample(DcBaseSkuExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
DcBaseSku selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcBaseSku record, @Param("example") DcBaseSkuExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcBaseSku record, @Param("example") DcBaseSkuExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcBaseSku record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
*/
int updateByPrimaryKey(DcBaseSku record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcBaseSku record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_base_sku
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcBaseSku record);
}
\ No newline at end of file
package com.bailuntec.mapper;
import com.bailuntec.domain.entity.DcMidCostFirstOrder;
import com.bailuntec.domain.example.DcMidCostFirstOrderExample;
import com.bailuntec.domain.pojo.MidCostFirst;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
public interface DcMidCostFirstOrderMapper {
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
long countByExample(DcMidCostFirstOrderExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int deleteByExample(DcMidCostFirstOrderExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int deleteByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int insert(DcMidCostFirstOrder record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int insertSelective(DcMidCostFirstOrder record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
DcMidCostFirstOrder selectOneByExample(DcMidCostFirstOrderExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
List<DcMidCostFirstOrder> selectByExample(DcMidCostFirstOrderExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
DcMidCostFirstOrder selectByPrimaryKey(Integer id);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int updateByExampleSelective(@Param("record") DcMidCostFirstOrder record, @Param("example") DcMidCostFirstOrderExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int updateByExample(@Param("record") DcMidCostFirstOrder record, @Param("example") DcMidCostFirstOrderExample example);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int updateByPrimaryKeySelective(DcMidCostFirstOrder record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
*/
int updateByPrimaryKey(DcMidCostFirstOrder record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsert(DcMidCostFirstOrder record);
/**
* This method was generated by MyBatis Generator.
* This method corresponds to the database table dc_mid_cost_first_order
*
* @mbg.generated
* @project https://github.com/itfsw/mybatis-generator-plugin
*/
int upsertSelective(DcMidCostFirstOrder record);
int countSkuWarehouse();
List<MidCostFirst> listSkuWarehouse(@Param("v1")int v1, @Param("v2")int v2);
}
\ No newline at end of file
import com.bailuntec.domain.entity.DcBaseCostFirst;
import com.bailuntec.domain.example.DcBaseCostFirstExample;
import com.bailuntec.job.CalculateCostFirstJob;
import com.bailuntec.listener.CalculateCostFirstListener;
import com.bailuntec.mapper.DcBaseCostFirstMapper;
import com.bailuntec.mapper.DcMidCostFirstMapper;
import com.bailuntec.utils.SessionUtil;
import org.junit.jupiter.api.Test;
import java.util.List;
public class CostFirstTest {
@Test
public void test() {
CalculateCostFirstJob costFirstJob = new CalculateCostFirstJob();
try {
DcBaseCostFirstMapper dcBaseCostFirstMapper = SessionUtil.getSession().getMapper(DcBaseCostFirstMapper.class);
//拿到物流单号, 将物流单中每个SKU的费用算出来
List<String> channelOrderIdList = dcBaseCostFirstMapper.listChannelOrderId(200, 2);
if (channelOrderIdList != null && channelOrderIdList.size() > 0) {
for (String channelOrderId : channelOrderIdList) {
DcBaseCostFirstMapper dcBaseCostFirstMapperFor = SessionUtil.getSession().getMapper(DcBaseCostFirstMapper.class);
List<DcBaseCostFirst> dcBaseCostFirsts = dcBaseCostFirstMapperFor.selectByExample(DcBaseCostFirstExample.newAndCreateCriteria().andChannelOrderIdEqualTo(channelOrderId).example());
costFirstJob.handleChannelOrderSku(dcBaseCostFirsts);
}
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("MYBATIS操作DB失败", e);
} finally {
SessionUtil.closeSession();
}
}
@Test
public void test1() {
CalculateCostFirstListener calculateCostFirstListener = new CalculateCostFirstListener();
calculateCostFirstListener.afterJobExecuted(null);
}
}
import org.junit.jupiter.api.Test;
public class DailySalesTest {
@Test
public void test() {
}
}
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