Commit 76487375 by wutong

头程费处理及时关闭sqlSession

parent e31e3ab1
......@@ -24,28 +24,34 @@ public class CalculateCostFirstListener implements ElasticJobListener {
@Override
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);
try {
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);
index++;
} while (index < skuWarehouseTotalPage);
} catch (Exception e) {
throw new RuntimeException("在计算头程费到DcMidCostFirst时失败");
} finally {
SessionUtil.closeSession();
}
}
private int getSkuWarehouseTotalPage(int countSkuWarehouse) {
......
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