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

1、增加采集日志的记录2、优化定时任务采集时间查询 3、将采集代码暂时放在job服务中

上级 ce87bc49
package com.link.bi.domain.dao;
import com.link.bi.domain.entity.CollectOrderLogInfo;
import java.util.Date;
public interface CollectOrderLogInfoDao {
// 插入一条记录
void insert(CollectOrderLogInfo collectOrderLogInfo);
Date selectOrderLatest(Integer syncType);
}
package com.link.bi.domain.dao; package com.link.bi.domain.dao;
import java.util.Date;
/** /**
* @author : lvbencai * @author : lvbencai
* @date : 2025年01月07日10:04:25 * @date : 2025年01月07日10:04:25
* @describe : 财务需要的订单DAO * @describe : 财务需要的订单DAO
*/ */
public interface IFinanceOrderDao { public interface IFinanceOrderDao {
Date selectOrderLatest(Integer syncType);
} }
package com.link.bi.domain.dao; package com.link.bi.domain.dao;
import com.link.bi.domain.entity.PrdInfo;
import com.link.bi.domain.wq.ProductWq; import com.link.bi.domain.wq.ProductWq;
import com.link.bi.pojo.response.PrdInfoDto; import com.link.bi.pojo.response.PrdInfoDto;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
...@@ -20,4 +21,6 @@ public interface IProductDao { ...@@ -20,4 +21,6 @@ public interface IProductDao {
List<PrdInfoDto> selectListByIds(List<Integer> ids); List<PrdInfoDto> selectListByIds(List<Integer> ids);
List<PrdInfoDto> selectListByCodes(List<String> prdCodes); List<PrdInfoDto> selectListByCodes(List<String> prdCodes);
List<PrdInfo> selectProdSeries();
} }
package com.link.bi.domain.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.link.bi.domain.dao.CollectOrderLogInfoDao;
import com.link.bi.domain.entity.CollectOrderLogInfo;
import com.link.bi.domain.mapper.CollectOrderLogInfoMapper;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
@Repository
public class CollectOrderLogInfoDaoImpl implements CollectOrderLogInfoDao {
@Autowired
private CollectOrderLogInfoMapper logInfoMapper;
@Override
public void insert(CollectOrderLogInfo collectOrderLogInfo) {
logInfoMapper.insert(collectOrderLogInfo);
}
@Override
public Date selectOrderLatest(Integer syncType) {
// 查询最新发货日期
List<CollectOrderLogInfo> orderList = logInfoMapper.selectList(
new LambdaQueryWrapper<CollectOrderLogInfo>()
// 默认查询xxljob自动同步时间
.eq(CollectOrderLogInfo::getSyncType,syncType)
.eq(CollectOrderLogInfo::getDelFlag,0)
.orderByDesc(CollectOrderLogInfo::getUpdateTime)
.last("LIMIT 1"));
if(ObjectUtils.isNotEmpty(orderList)){
// 最新的数据日期
return orderList.get(0).getLatestTime();
}
return null;
}
}
package com.link.bi.domain.dao.impl; package com.link.bi.domain.dao.impl;
import com.baomidou.dynamic.datasource.annotation.Slave;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.link.bi.domain.dao.IFinanceOrderDao; import com.link.bi.domain.dao.IFinanceOrderDao;
import com.link.bi.domain.entity.FinanceOrder;
import com.link.bi.domain.mapper.FinanceOrderMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/** /**
* @author : lvbencai * @author : lvbencai
* @date : 2025-01-14 17:31:05 * @date : 2025-01-14 17:31:05
...@@ -22,26 +12,4 @@ import java.util.List; ...@@ -22,26 +12,4 @@ import java.util.List;
@Slf4j @Slf4j
@Service @Service
public class FinanceOrderDaoImpl implements IFinanceOrderDao { public class FinanceOrderDaoImpl implements IFinanceOrderDao {
@Autowired
private FinanceOrderMapper orderMapper;
@Slave
public Date selectOrderLatest(Integer syncType) {
// 查询最新发货日期
List<FinanceOrder> objects = orderMapper.selectList(
new LambdaQueryWrapper<FinanceOrder>()
// 默认查询xxljob自动同步时间
.eq(FinanceOrder::getSyncType,syncType)
.orderByDesc(FinanceOrder::getModified)
.last("LIMIT 1"));
if(ObjectUtils.isNotEmpty(objects)){
// 最新的数据日期
return objects.get(0).getModified();
}else{
// 默认上个月的第一天 00:00:00
return DateUtils.addMonths(new Date(),-1);
}
}
} }
...@@ -42,14 +42,14 @@ public class ProductDaoImpl implements IProductDao { ...@@ -42,14 +42,14 @@ public class ProductDaoImpl implements IProductDao {
@Override @Override
public PageInfo productPage(ProductWq pqw) { public PageInfo productPage(ProductWq pqw) {
LambdaQueryWrapper<PrdInfo> qw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PrdInfo> qw = new LambdaQueryWrapper<>();
if (Objects.nonNull(pqw.getSeriesId())){ if (Objects.nonNull(pqw.getSeriesId())) {
qw.eq(PrdInfo::getSeriesId,pqw.getSeriesId()); qw.eq(PrdInfo::getSeriesId, pqw.getSeriesId());
} }
if (StringUtils.isNotBlank(pqw.getPrdCode())){ if (StringUtils.isNotBlank(pqw.getPrdCode())) {
qw.eq(PrdInfo::getPrdCode,pqw.getPrdCode()); qw.eq(PrdInfo::getPrdCode, pqw.getPrdCode());
} }
if (StringUtils.isNotBlank(pqw.getPrdNameLike())){ if (StringUtils.isNotBlank(pqw.getPrdNameLike())) {
qw.like(PrdInfo::getPrdName,pqw.getPrdNameLike()); qw.like(PrdInfo::getPrdName, pqw.getPrdNameLike());
} }
Page<PrdInfo> page = prdInfoMapper.selectPage(TableSupport.pageI(), qw); Page<PrdInfo> page = prdInfoMapper.selectPage(TableSupport.pageI(), qw);
...@@ -64,7 +64,17 @@ public class ProductDaoImpl implements IProductDao { ...@@ -64,7 +64,17 @@ public class ProductDaoImpl implements IProductDao {
@Override @Override
public List<PrdInfoDto> selectListByCodes(List<String> prdCodes) { public List<PrdInfoDto> selectListByCodes(List<String> prdCodes) {
List<PrdInfo> prdInfos = prdInfoMapper.selectList(new LambdaQueryWrapper<PrdInfo>().in(ObjectUtil.isNotEmpty(prdCodes),PrdInfo::getPrdCode, prdCodes)); List<PrdInfo> prdInfos = prdInfoMapper.selectList(new LambdaQueryWrapper<PrdInfo>().in(ObjectUtil.isNotEmpty(prdCodes), PrdInfo::getPrdCode, prdCodes));
return BeanUtils.transitionDtos(prdInfos, PrdInfoDto.class); return BeanUtils.transitionDtos(prdInfos, PrdInfoDto.class);
} }
@Override
public List<PrdInfo> selectProdSeries() {
List<PrdInfo> prdInfos = prdInfoMapper.selectList(
new LambdaQueryWrapper<PrdInfo>()
.select(PrdInfo::getSeries, PrdInfo::getPrdCode, PrdInfo::getPrdName)
.groupBy(PrdInfo::getSeries, PrdInfo::getPrdCode, PrdInfo::getPrdName));
return prdInfos;
}
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Date;
import java.util.Map; import java.util.Map;
/** /**
* CollectErrorInfo 类表示采集错误记录,与数据库表 market_bi.collect_error_info 相对应。 * CollectErrorInfo 类表示采集错误记录,与数据库表 market_bi.collect_error_info 相对应。
...@@ -33,7 +34,7 @@ public class CollectErrorInfo { ...@@ -33,7 +34,7 @@ public class CollectErrorInfo {
/** /**
* 采集时间 * 采集时间
*/ */
private LocalDateTime collectTime; private Date collectTime;
/** /**
* 是否删除标志,'0' 表示未删除,'1' 表示已删除 * 是否删除标志,'0' 表示未删除,'1' 表示已删除
...@@ -78,12 +79,15 @@ public class CollectErrorInfo { ...@@ -78,12 +79,15 @@ public class CollectErrorInfo {
/** /**
* 本批次采集开始时间 * 本批次采集开始时间
*/ */
private LocalDateTime startTime; private Date startTime;
/** /**
* 本批次采集结束时间 * 本批次采集结束时间
*/ */
private LocalDateTime endTime; private Date endTime;
/**
* 错误信息
*/
private String errorMsg;
} }
package com.link.bi.domain.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 采集订单日志信息
*
* @TableName collect_order_log_info
* @author lvbencai
* @date 2025-01-16 22:58:38
* @description
*/
@Data
@TableName("collect_order_log_info")
public class CollectOrderLogInfo implements Serializable {
/**
* 唯一键,用于唯一标识采集订单日志信息记录
*/
@TableId(value = "cli_id",type= IdType.AUTO)
private Long cliId;
/**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/
//@TableField("order_count")
private Integer orderCount;
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
//@TableField("order_detail_count")
private Integer orderDetailCount;
/**
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
*/
//@TableField("batch_no")
private String batchNo;
/**
* 采集的最新时间,代表上一次采集的结束时间,存储为日期时间类型
*/
//@TableField("latest_time")
private Date latestTime;
/**
* 是否删除的标志,'0' 表示未删除,'1' 表示已删除,使用 utf8mb3 字符集和 utf8mb3_general_ci 校对规则
*/
//@TableField("del_flag")
private String delFlag;
/**
* 创建者信息,存储为长度不超过 20 个字符的字符串
*/
//@TableField("create_by")
private String createBy;
/**
* 创建人的用户 ID,存储为长整型
*/
//@TableField("create_user_id")
private Long createUserId;
/**
* 创建时间,存储为日期时间类型,使用数据库的当前时间作为默认值
*/
//@TableField("create_time")
private Date createTime;
/**
* 更新者信息,存储为长度不超过 20 个字符的字符串
*/
//@TableField("update_by")
private String updateBy;
/**
* 修改人的用户 ID,存储为长整型
*/
//@TableField("update_user_id")
private Long updateUserId;
/**
* 更新时间,存储为日期时间类型,更新时自动更新为当前时间
*/
//@TableField("update_time")
private Date updateTime;
private Integer syncType;
}
...@@ -278,9 +278,14 @@ public class FinanceOrderDetail extends BaseDo { ...@@ -278,9 +278,14 @@ public class FinanceOrderDetail extends BaseDo {
private BigDecimal shareAmountDiffSum; private BigDecimal shareAmountDiffSum;
@TableField(exist = false) @TableField(exist = false)
private String queryType; private String queryType;
// 系列
private String series;
/** 是否删除标志0未删除1已删除 */ /**
* 是否删除标志0未删除1已删除
*/
private String delFlag; private String delFlag;
public String getFenxiaoId(FinanceOrder order, Long tradeId) { public String getFenxiaoId(FinanceOrder order, Long tradeId) {
// 如果不为空,解析出 // 如果不为空,解析出
if (ObjectUtils.isNotEmpty(order.getFenxiaoNick())) { if (ObjectUtils.isNotEmpty(order.getFenxiaoNick())) {
......
package com.link.bi.domain.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.link.bi.domain.entity.CollectOrderLogInfo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CollectOrderLogInfoMapper extends BaseMapper<CollectOrderLogInfo> {
}
package com.link.bi.domain.mapper; package com.link.bi.domain.mapper;
import com.link.bi.domain.entity.PrdInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.link.bi.domain.entity.PrdInfo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -14,7 +14,6 @@ import org.springframework.stereotype.Repository; ...@@ -14,7 +14,6 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
@Mapper @Mapper
public interface PrdInfoMapper extends BaseMapper<PrdInfo> { public interface PrdInfoMapper extends BaseMapper<PrdInfo> {
} }
......
...@@ -12,18 +12,19 @@ public class FinanceCostVo { ...@@ -12,18 +12,19 @@ public class FinanceCostVo {
private String pageNum; private String pageNum;
// 入参 分页大小 // 入参 分页大小
private String pageSize; private String pageSize;
// 入参 时间开始时间 // 入参 时间开始时间
private Date startDate; private Date startDate;
// 入参 时间结束时间 // 入参 时间结束时间
private Date endDate; private Date endDate;
// 直播间类型
private List<String> zbjQdType; private List<String> zbjQdType;
// 入参 口味
private List<String> flavor; private List<String> flavor;
// 入参 规格
private List<String> specName; private List<String> specName;
// 入参 系列
private List<String> series; private List<String> series;
// 入参 商品名称
private List<String> goodsName; private List<String> goodsName;
} }
...@@ -4,10 +4,11 @@ import com.link.bi.domain.entity.FinanceOrder; ...@@ -4,10 +4,11 @@ import com.link.bi.domain.entity.FinanceOrder;
import com.link.bi.domain.entity.FinanceOrderDetail; import com.link.bi.domain.entity.FinanceOrderDetail;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
* 财务同步旺店通订单明细DTO * 财务同步旺店通返回数据Dto
*/ */
@Data @Data
public class FinanceSyncOrderDetailDto { public class FinanceSyncOrderDetailDto {
...@@ -15,4 +16,9 @@ public class FinanceSyncOrderDetailDto { ...@@ -15,4 +16,9 @@ public class FinanceSyncOrderDetailDto {
private Integer orderDetailCount; private Integer orderDetailCount;
private List<FinanceOrder> orders; private List<FinanceOrder> orders;
private List<FinanceOrderDetail> orderDetails; private List<FinanceOrderDetail> orderDetails;
private Date startTime;
private Date endTime;
private Integer syncType;
private String batchNo;
} }
package com.link.bi.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.link.bi.domain.entity.CollectOrderLogInfo;
public interface CollectOrderLogInfoService extends IService<CollectOrderLogInfo> {
}
...@@ -3,14 +3,7 @@ package com.link.bi.service; ...@@ -3,14 +3,7 @@ package com.link.bi.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.link.bi.domain.entity.FinanceOrder; import com.link.bi.domain.entity.FinanceOrder;
import com.link.bi.pojo.response.FinanceSyncOrderDetailDto;
import java.util.Date;
public interface FinanceOrderService extends IService<FinanceOrder> { public interface FinanceOrderService extends IService<FinanceOrder> {
Date selectLatest(Integer syncType);
FinanceSyncOrderDetailDto syncWandiantongOrder(Date startTime, Date endTime, Integer syncType);
} }
...@@ -5,6 +5,7 @@ import com.link.bi.pojo.response.PrdInfoDto; ...@@ -5,6 +5,7 @@ import com.link.bi.pojo.response.PrdInfoDto;
import com.sfa.common.core.web.domain.PageInfo; import com.sfa.common.core.web.domain.PageInfo;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -18,4 +19,6 @@ public interface IProductService { ...@@ -18,4 +19,6 @@ public interface IProductService {
PageInfo productPage(ProductVo productVo); PageInfo productPage(ProductVo productVo);
List<PrdInfoDto> selectListByCodes(List<String> codeLists); List<PrdInfoDto> selectListByCodes(List<String> codeLists);
Map<String, String> selectProdSeries();
} }
package com.link.bi.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.link.bi.domain.dao.CollectOrderLogInfoDao;
import com.link.bi.domain.entity.CollectOrderLogInfo;
import com.link.bi.domain.mapper.CollectOrderLogInfoMapper;
import com.link.bi.service.CollectOrderLogInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class CollectOrderLogInfoServiceImpl extends ServiceImpl<CollectOrderLogInfoMapper, CollectOrderLogInfo> implements CollectOrderLogInfoService {
@Autowired
private CollectOrderLogInfoDao dao;
@Override
public List<CollectOrderLogInfo> list(Wrapper<CollectOrderLogInfo> queryWrapper) {
return list(queryWrapper);
}
}
package com.link.bi.service.impl; package com.link.bi.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.link.bi.domain.dao.IFinanceOrderDao;
import com.link.bi.domain.entity.FinanceBaseProduct;
import com.link.bi.domain.entity.FinanceOrder; import com.link.bi.domain.entity.FinanceOrder;
import com.link.bi.domain.entity.FinanceOrderDetail;
import com.link.bi.domain.mapper.FinanceOrderMapper; import com.link.bi.domain.mapper.FinanceOrderMapper;
import com.link.bi.pojo.response.FinanceSyncOrderDetailDto;
import com.link.bi.service.FinanceBaseProductService;
import com.link.bi.service.FinanceBaseZbjTypeService;
import com.link.bi.service.FinanceOrderDetailService;
import com.link.bi.service.FinanceOrderService; import com.link.bi.service.FinanceOrderService;
import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.core.utils.DateUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/** /**
* 旺店通订单Service业务层处理 * 旺店通订单Service业务层处理
...@@ -34,136 +18,5 @@ import java.util.*; ...@@ -34,136 +18,5 @@ import java.util.*;
@Slf4j @Slf4j
@Service @Service
public class FinanceOrderServiceImpl extends ServiceImpl<FinanceOrderMapper, FinanceOrder> implements FinanceOrderService { public class FinanceOrderServiceImpl extends ServiceImpl<FinanceOrderMapper, FinanceOrder> implements FinanceOrderService {
@Autowired
IFinanceOrderDao orderDao;
// @Autowired
// WangdiantongUtil wangdiantongUtil;
@Autowired
FinanceOrderDetailService detailService;
@Autowired
FinanceBaseProductService baseProductService;
@Autowired
FinanceBaseZbjTypeService baseZbjTypeService;
/**
* 查询最新修改日期
*
* @return
*/
@Override
public Date selectLatest(Integer syncType) {
// 查询最新发货日期
Date date = orderDao.selectOrderLatest(syncType);
return date;
}
/**
* 多线程调用此方法
*
* @param startTime
* @param endTime
*/
// @DS("bi")
@Transactional(rollbackFor = Exception.class)
@Override
public FinanceSyncOrderDetailDto syncWandiantongOrder(Date startTime, Date endTime, Integer syncType) {
FinanceSyncOrderDetailDto detailDto = new FinanceSyncOrderDetailDto();
String batchNo = DateUtils.dateTimeNow() + "-" + Thread.currentThread().getId();
try {
if (ObjectUtils.isEmpty(startTime)) {
// 查询最新的采集时间
Date date = this.selectLatest(syncType);
// 调用查询旺店通接口api 获取最新日期前的一个小时
startTime = DateUtils.addMinutes(date, -3);
}
if (ObjectUtils.isEmpty(endTime)) {
endTime = DateUtils.addMinutes(startTime, 60);
}
log.info("查询订单参数:开始时间{},结束时间{}", DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(endTime));
List<FinanceOrder> orders = new ArrayList<>();
// wangdiantongUtil.queryWithDetail(startTime, endTime);
if (ObjectUtils.isEmpty(orders)) {
throw new ServiceException("旺店通没有查询到订单数据");
}
// 基础数据 直播间分类数据+成本、规格、口味
Map<String, FinanceBaseProduct> baseProductMap = baseProductService.selectBaseProduct();
Map<String, String> baseZbjType = baseZbjTypeService.selectBaseZbjType();
// 入库订单表
log.info("开始插入订单数据,数量:{}", orders.size());
Date finalStartTime = startTime;
Date finalEndTime = endTime;
orders.forEach(order -> {
order.setBatchNo(batchNo);
order.setStartTime(finalStartTime);
order.setEndTime(finalEndTime);
order.setSyncType(syncType);
});
this.saveOrUpdateBatch(orders);
List<FinanceOrderDetail> mergeList = new ArrayList<>();
// 用于同一个订单号,来赋值直播间信息
Map<String,FinanceOrderDetail > orderZbj = new HashMap<>();
// 入库订单明细表
for (FinanceOrder order : orders) {
List<FinanceOrderDetail> orderDetails = order.getDetailList();
orderDetails.forEach(orderDetail -> {
orderDetail.setTradeStatus(order.getTradeStatus());
orderDetail.setShopNo(order.getShopNo());
orderDetail.setShopName(order.getShopName());
orderDetail.setShopRemark(order.getShopRemark());
orderDetail.setReceivable(order.getReceivable());
orderDetail.setReceiverArea(order.getReceiverArea());
orderDetail.setConsignTime(order.getConsignTime());
orderDetail.setTradeTime(order.getTradeTime());
orderDetail.setBatchNo(batchNo);
orderDetail.setTradeNo(order.getTradeNo());
// 计算分销信息
orderDetail.setFenxiaoNick(orderDetail.getFenxiaoNick(order));
orderDetail.setFenxiaoId(orderDetail.getFenxiaoId(order, orderDetail.getTradeId()));
orderDetail.setFenxiaoName(orderDetail.getFenxiaoName(order, orderDetail.getTradeId()));
orderDetail.setStartTime(finalStartTime);
orderDetail.setEndTime(finalEndTime);
orderDetail.setSyncType(syncType);
// 如果存在相同的
FinanceOrderDetail sameDetail = orderZbj.get(orderDetail.getSrcTid());
orderDetail.setZbjName(orderDetail.getZbjName(orderDetail.getRemark(),sameDetail));
orderDetail.setZbjId(orderDetail.getZbjId(orderDetail.getRemark(),sameDetail));
orderDetail.setZbjZbId(orderDetail.getZbjZbId(orderDetail.getFenxiaoId(),orderDetail.getRemark(),sameDetail));
orderDetail.setZbjSaleType(orderDetail.getZbjSaleType(orderDetail.getRemark(),sameDetail));
// 确定分销商类型
orderDetail.setZbjQdType(orderDetail.getZbjQdType(orderDetail.getFenxiaoId(),orderDetail.getZbjZbId(), baseZbjType));
if (ObjectUtils.isNotEmpty(orderDetail.getZbjName())){
orderZbj.put(orderDetail.getSrcTid(),orderDetail);
}
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.setActualCost(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getActualCost() : new BigDecimal(0));
orderDetail.setStandardCost(ObjectUtils.isNotEmpty(baseProductMap.get(orderDetail.getGoodsNo())) ? baseProductMap.get(orderDetail.getGoodsNo()).getStandardCost() : new BigDecimal(0));
});
mergeList.addAll(orderDetails);
}
log.info("开始插入订单详情数据,数量:{}", mergeList.size());
// 批量插入
detailService.saveOrUpdateBatch(mergeList);
detailDto.setOrders(orders);
detailDto.setOrderCount(orders.size());
detailDto.setOrderDetailCount(mergeList.size());
detailDto.setOrderDetails(mergeList);
log.info("完成插入订单和订单详情数据,开始时间{},结束时间{},订单数量:{},详情数量:{}", DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(endTime), orders.size(), mergeList.size());
} catch (Exception e) {
log.error(e.getMessage(), e);
// TODO 记录错误日志表 collect_error_info
throw e;
}
return detailDto;
}
} }
package com.link.bi.service.impl; package com.link.bi.service.impl;
import com.link.bi.domain.dao.IProductDao; import com.link.bi.domain.dao.IProductDao;
import com.link.bi.domain.entity.PrdInfo;
import com.link.bi.domain.wq.ProductWq; import com.link.bi.domain.wq.ProductWq;
import com.link.bi.pojo.request.ProductVo; import com.link.bi.pojo.request.ProductVo;
import com.link.bi.pojo.response.PrdInfoDto; import com.link.bi.pojo.response.PrdInfoDto;
...@@ -10,7 +11,9 @@ import org.springframework.beans.BeanUtils; ...@@ -10,7 +11,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -41,4 +44,16 @@ public class ProductServiceImpl implements IProductService { ...@@ -41,4 +44,16 @@ public class ProductServiceImpl implements IProductService {
List<PrdInfoDto> prdInfos = productDao.selectListByCodes(prdCodes); List<PrdInfoDto> prdInfos = productDao.selectListByCodes(prdCodes);
return prdInfos; return prdInfos;
} }
@Override
public Map<String, String> selectProdSeries() {
List<PrdInfo> prdInfos = productDao.selectProdSeries();
// 转换成map
Map<String, String> map = new HashMap<>();
prdInfos.stream().forEach(prdInfo -> {
map.put(prdInfo.getPrdCode(), prdInfo.getPrdName());
});
return map;
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论