提交 34dd35a9 authored 作者: 吕本才's avatar 吕本才

1、增加除法前的判断,除数是否为0

上级 d3a896be
package com.sfa.job.domain.order.dao.impl; package com.sfa.job.service.order.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
......
...@@ -52,8 +52,10 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -52,8 +52,10 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
CollectErrorInfoDao errorInfoDao; CollectErrorInfoDao errorInfoDao;
@Autowired @Autowired
IProductDao productDao; IProductDao productDao;
/** /**
* 多线程调用此方法 * 多线程调用此方法
*
* @param startTime * @param startTime
* @param endTime * @param endTime
*/ */
...@@ -74,12 +76,12 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -74,12 +76,12 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
} }
// 调用查询旺店通接口api 获取最新日期前的一个小时 // 调用查询旺店通接口api 获取最新日期前的一个小时
startTime = DateUtils.addMinutes(startTime, -3); startTime = DateUtils.addMinutes(startTime, -3);
}else{ } else {
// 调用查询旺店通接口api 获取最新日期前的一个小时 // 调用查询旺店通接口api 获取最新日期前的一个小时
Date currentLatest = DateUtils.addHours(new Date(), -2); Date currentLatest = DateUtils.addHours(new Date(), -2);
if (currentLatest.compareTo(startTime) < 0) { if (currentLatest.compareTo(startTime) < 0) {
throw new ServiceException("开始时间不能大于当前时间"); throw new ServiceException("开始时间不能大于当前时间");
} }
} }
if (ObjectUtils.isEmpty(endTime)) { if (ObjectUtils.isEmpty(endTime)) {
endTime = DateUtils.addMinutes(startTime, 60); endTime = DateUtils.addMinutes(startTime, 60);
...@@ -93,7 +95,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -93,7 +95,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
//转化成orderList //转化成orderList
// List<FinanceOrder> orders = orderAllArray.toJavaList(FinanceOrder.class); // List<FinanceOrder> orders = orderAllArray.toJavaList(FinanceOrder.class);
List<FinanceOrder> orders = JSONArray.parseArray(orderAllArray.toString(), FinanceOrder.class, JSONReader.Feature.SupportSmartMatch); List<FinanceOrder> orders = JSONArray.parseArray(orderAllArray.toString(), FinanceOrder.class, JSONReader.Feature.SupportSmartMatch);
// 基础数据 直播间分类数据+成本、规格、口味 // 基础数据 直播间分类数据+成本、规格、口味
Map<String, FinanceBaseProduct> baseProductMap = baseProductService.selectBaseProduct(); Map<String, FinanceBaseProduct> baseProductMap = baseProductService.selectBaseProduct();
...@@ -101,12 +103,12 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -101,12 +103,12 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
Map<String, String> baseZbjType = baseZbjTypeService.selectBaseZbjType(); Map<String, String> baseZbjType = baseZbjTypeService.selectBaseZbjType();
// 系列 // 系列
List<PrdInfo> prdInfos = productDao.selectProdSeries(); List<PrdInfo> prdInfos = productDao.selectProdSeries();
// 转换成map // 转换成map
Map<String, String> prodSeriesMap = new HashMap<>(); Map<String, String> prodSeriesMap = new HashMap<>();
prdInfos.stream().forEach(prdInfo -> { prdInfos.stream().forEach(prdInfo -> {
prodSeriesMap.put(prdInfo.getPrdCode(), prdInfo.getPrdName()); prodSeriesMap.put(prdInfo.getPrdCode(), prdInfo.getPrdName());
}); });
// 入库订单表 // 入库订单表
log.info("开始插入订单数据,数量:{}", orderAllArray.size()); log.info("开始插入订单数据,数量:{}", orderAllArray.size());
Date finalStartTime = startTime; Date finalStartTime = startTime;
Date finalEndTime = endTime; Date finalEndTime = endTime;
...@@ -123,46 +125,50 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -123,46 +125,50 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
// 用于同一个订单号,来赋值直播间信息 // 用于同一个订单号,来赋值直播间信息
Map<String, FinanceOrderDetail> orderZbj = new HashMap<>(); Map<String, FinanceOrderDetail> orderZbj = new HashMap<>();
// 入库订单明细表 // 入库订单明细表
for (FinanceOrder order : orders) { for (FinanceOrder order : orders) {
List<FinanceOrderDetail> orderDetails = order.getDetailList(); List<FinanceOrderDetail> orderDetails = order.getDetailList();
for (FinanceOrderDetail orderDetail : orderDetails) { for (FinanceOrderDetail orderDetail : orderDetails) {
orderDetail.setSeries(prodSeriesMap.get(orderDetail.getGoodsNo())); orderDetail.setSeries(prodSeriesMap.get(orderDetail.getGoodsNo()));
orderDetail.setTradeStatus(order.getTradeStatus()); orderDetail.setTradeStatus(order.getTradeStatus());
orderDetail.setShopNo(order.getShopNo()); orderDetail.setShopNo(order.getShopNo());
orderDetail.setShopName(order.getShopName()); orderDetail.setShopName(order.getShopName());
orderDetail.setShopRemark(order.getShopRemark()); orderDetail.setShopRemark(order.getShopRemark());
orderDetail.setReceivable(order.getReceivable()); orderDetail.setReceivable(order.getReceivable());
orderDetail.setReceiverArea(order.getReceiverArea()); orderDetail.setReceiverArea(order.getReceiverArea());
orderDetail.setConsignTime(order.getConsignTime()); orderDetail.setConsignTime(order.getConsignTime());
orderDetail.setTradeTime(order.getTradeTime()); orderDetail.setTradeTime(order.getTradeTime());
orderDetail.setBatchNo(batchNo); orderDetail.setBatchNo(batchNo);
orderDetail.setTradeNo(order.getTradeNo()); orderDetail.setTradeNo(order.getTradeNo());
// 计算分销信息 // 计算分销信息
orderDetail.setFenxiaoNick(orderDetail.getFenxiaoNick(order)); orderDetail.setFenxiaoNick(orderDetail.getFenxiaoNick(order));
orderDetail.setFenxiaoId(orderDetail.getFenxiaoId(order, orderDetail.getTradeId())); orderDetail.setFenxiaoId(orderDetail.getFenxiaoId(order, orderDetail.getTradeId()));
orderDetail.setFenxiaoName(orderDetail.getFenxiaoName(order, orderDetail.getTradeId())); orderDetail.setFenxiaoName(orderDetail.getFenxiaoName(order, orderDetail.getTradeId()));
orderDetail.setStartTime(finalStartTime); orderDetail.setStartTime(finalStartTime);
orderDetail.setEndTime(finalEndTime); orderDetail.setEndTime(finalEndTime);
orderDetail.setSyncType(syncType); orderDetail.setSyncType(syncType);
// 如果存在相同的 // 如果存在相同的
FinanceOrderDetail sameDetail = orderZbj.get(orderDetail.getSrcTid()); FinanceOrderDetail sameDetail = orderZbj.get(orderDetail.getSrcTid());
orderDetail.setZbjName(orderDetail.getZbjName(orderDetail.getRemark(), sameDetail)); orderDetail.setZbjName(orderDetail.getZbjName(orderDetail.getRemark(), sameDetail));
orderDetail.setZbjId(orderDetail.getZbjId(orderDetail.getRemark(), sameDetail)); orderDetail.setZbjId(orderDetail.getZbjId(orderDetail.getRemark(), sameDetail));
orderDetail.setZbjZbId(orderDetail.getZbjZbId(orderDetail.getFenxiaoId(), orderDetail.getRemark(), sameDetail)); orderDetail.setZbjZbId(orderDetail.getZbjZbId(orderDetail.getFenxiaoId(), orderDetail.getRemark(), sameDetail));
orderDetail.setZbjSaleType(orderDetail.getZbjSaleType(orderDetail.getRemark(), sameDetail)); orderDetail.setZbjSaleType(orderDetail.getZbjSaleType(orderDetail.getRemark(), sameDetail));
// 确定分销商类型 // 确定分销商类型
orderDetail.setZbjQdType(orderDetail.getZbjQdType(orderDetail.getFenxiaoId(), orderDetail.getZbjZbId(), baseZbjType)); orderDetail.setZbjQdType(orderDetail.getZbjQdType(orderDetail.getFenxiaoId(), orderDetail.getZbjZbId(), baseZbjType));
if (ObjectUtils.isNotEmpty(orderDetail.getZbjName())) { if (ObjectUtils.isNotEmpty(orderDetail.getZbjName())) {
orderZbj.put(orderDetail.getSrcTid(), orderDetail); orderZbj.put(orderDetail.getSrcTid(), orderDetail);
} }
orderDetail.setFlavorErp(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getFlavor() : ""); orderDetail.setFlavorErp(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getFlavor() : "");
orderDetail.setSpecNameErp(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getSpec() : ""); orderDetail.setSpecNameErp(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getSpec() : "");
orderDetail.setActualCost(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getActualCost() : order.getGoodsCost().divide( order.getGoodsTypeCount()).setScale(4, BigDecimal.ROUND_HALF_UP)); orderDetail.setActualCost(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ?
orderDetail.setStandardCost(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getStandardCost() : order.getGoodsCost().divide( order.getGoodsTypeCount()).setScale(4, BigDecimal.ROUND_HALF_UP)); baseProductMap.get(orderDetail.getGoodsNo()).getActualCost():
} (ObjectUtils.isNotEmpty(order.getGoodsTypeCount()) && !order.getGoodsTypeCount().equals(0)) ? order.getGoodsCost().divide(order.getGoodsTypeCount()).setScale(4, BigDecimal.ROUND_HALF_UP) : new BigDecimal(0));
mergeList.addAll(orderDetails); orderDetail.setStandardCost(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ?
baseProductMap.get(orderDetail.getGoodsNo()).getStandardCost() :
(ObjectUtils.isNotEmpty(order.getGoodsTypeCount()) && !order.getGoodsTypeCount().equals(0)) ? order.getGoodsCost().divide(order.getGoodsTypeCount()).setScale(4, BigDecimal.ROUND_HALF_UP) : new BigDecimal(0));
}
mergeList.addAll(orderDetails);
} }
log.info("开始插入订单详情数据,数量:{}", mergeList.size()); log.info("开始插入订单详情数据,数量:{}", mergeList.size());
...@@ -176,7 +182,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -176,7 +182,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
detailDto.setEndTime(endTime); detailDto.setEndTime(endTime);
detailDto.setBatchNo(batchNo); detailDto.setBatchNo(batchNo);
log.info("插入订单和订单详情完成,批次{}开始时间{},结束时间{},订单数量:{},详情数量:{}",batchNo, DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(endTime), orders.size(), mergeList.size()); log.info("插入订单和订单详情完成,批次{}开始时间{},结束时间{},订单数量:{},详情数量:{}", batchNo, DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(endTime), orders.size(), mergeList.size());
CollectOrderLogInfo collectOrderLogInfo = new CollectOrderLogInfo(); CollectOrderLogInfo collectOrderLogInfo = new CollectOrderLogInfo();
collectOrderLogInfo.setSyncType(syncType); collectOrderLogInfo.setSyncType(syncType);
...@@ -188,7 +194,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -188,7 +194,7 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
// 记录错误日志表 collect_error_info // 记录错误日志表 collect_error_info
CollectErrorInfo errorInfo =new CollectErrorInfo(); CollectErrorInfo errorInfo = new CollectErrorInfo();
errorInfo.setBatchNo(batchNo); errorInfo.setBatchNo(batchNo);
errorInfo.setType(""); errorInfo.setType("");
errorInfo.setErrorMsg(e.getMessage()); errorInfo.setErrorMsg(e.getMessage());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论