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

1、根据review修改代码,日志记录表按log结尾,service不再集成mybatis-plus提供的service,dao层返回数据都使用dto

2、修改采集旺店通分页
上级 7574acd8
package com.sfa.job.constants;
public class Constants {
/**
* 采集数据方式
*/
public static final String SYNC_TYPE_XXL_JOB = "xxl-job";
}
package com.sfa.job.domain.order.dao; package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.CollectErrorInfo; import com.sfa.job.domain.order.entity.CollectErrorLog;
public interface CollectErrorInfoDao { public interface CollectErrorLogDao {
// 插入一条记录 // 插入一条记录
void insert(CollectErrorInfo collectErrorInfo); void insert(CollectErrorLog collectErrorLog);
} }
package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.CollectOrderLog;
import com.sfa.job.pojo.response.CollectOrderLogDto;
public interface CollectOrderLogDao {
// 插入一条记录
void insert(CollectOrderLog collectOrderLog);
CollectOrderLogDto selectOrderSyncLatest(Integer syncType);
}
package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.CollectOrderLogInfo;
public interface CollectOrderLogInfoDao {
// 插入一条记录
void insert(CollectOrderLogInfo collectOrderLogInfo);
CollectOrderLogInfo selectOrderSyncLatest(Integer syncType);
}
package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.FinanceOrder;
import java.util.List;
public interface FinanceOrderDao {
void saveOrUpdateBatch(List<FinanceOrder> mergeList);
}
package com.sfa.job.domain.order.dao; package com.sfa.job.domain.order.dao;
import com.sfa.job.domain.order.entity.PrdInfo; import java.util.Map;
import java.util.List;
/** /**
* @author : liqiulin * @author : liqiulin
...@@ -10,7 +8,5 @@ import java.util.List; ...@@ -10,7 +8,5 @@ import java.util.List;
* @describe : * @describe :
*/ */
public interface IProductDao { public interface IProductDao {
Map<String, String> selectProdSeries();
List<PrdInfo> selectProdSeries();
} }
package com.sfa.job.domain.order.dao.impl; package com.sfa.job.domain.order.dao.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.job.domain.order.dao.CollectErrorInfoDao; import com.sfa.job.domain.order.dao.CollectErrorLogDao;
import com.sfa.job.domain.order.entity.CollectErrorInfo; import com.sfa.job.domain.order.entity.CollectErrorLog;
import com.sfa.job.domain.order.mapper.CollectErrorInfoMapper; import com.sfa.job.domain.order.mapper.CollectErrorLogMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@DS("Bi") @DS("Bi")
@Repository @Repository
public class CollectErrorInfoDaoImpl implements CollectErrorInfoDao { public class CollectErrorLogImpl implements CollectErrorLogDao {
@Autowired @Autowired
private CollectErrorInfoMapper collectErrorInfoMapper; private CollectErrorLogMapper collectErrorLogMapper;
@Override @Override
public void insert(CollectErrorInfo collectErrorInfo) { public void insert(CollectErrorLog collectErrorLog) {
collectErrorInfoMapper.insert(collectErrorInfo); collectErrorLogMapper.insert(collectErrorLog);
} }
......
...@@ -2,9 +2,11 @@ package com.sfa.job.domain.order.dao.impl; ...@@ -2,9 +2,11 @@ package com.sfa.job.domain.order.dao.impl;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.sfa.job.domain.order.dao.CollectOrderLogInfoDao; import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.job.domain.order.entity.CollectOrderLogInfo; import com.sfa.job.domain.order.dao.CollectOrderLogDao;
import com.sfa.job.domain.order.mapper.CollectOrderLogInfoMapper; import com.sfa.job.domain.order.entity.CollectOrderLog;
import com.sfa.job.domain.order.mapper.CollectOrderLogMapper;
import com.sfa.job.pojo.response.CollectOrderLogDto;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -13,29 +15,30 @@ import java.util.List; ...@@ -13,29 +15,30 @@ import java.util.List;
@DS("Bi") @DS("Bi")
@Repository @Repository
public class CollectOrderLogInfoDaoImpl implements CollectOrderLogInfoDao { public class CollectOrderLogDaoImpl implements CollectOrderLogDao {
@Autowired @Autowired
private CollectOrderLogInfoMapper logInfoMapper; private CollectOrderLogMapper logInfoMapper;
@Override @Override
public void insert(CollectOrderLogInfo collectOrderLogInfo) { public void insert(CollectOrderLog collectOrderLog) {
logInfoMapper.insert(collectOrderLogInfo); logInfoMapper.insert(collectOrderLog);
} }
@Override @Override
public CollectOrderLogInfo selectOrderSyncLatest(Integer syncType) { public CollectOrderLogDto selectOrderSyncLatest(Integer syncType) {
// 查询最新发货日期 // 查询最新发货日期
List<CollectOrderLogInfo> orderList = logInfoMapper.selectList( List<CollectOrderLog> orderList = logInfoMapper.selectList(
new LambdaQueryWrapper<CollectOrderLogInfo>() new LambdaQueryWrapper<CollectOrderLog>()
// 默认查询xxljob自动同步时间 // 默认查询xxljob自动同步时间
.eq(CollectOrderLogInfo::getSyncType,syncType) .eq(CollectOrderLog::getSyncType,syncType)
.eq(CollectOrderLogInfo::getDelFlag,0) .eq(CollectOrderLog::getDelFlag,0)
.orderByDesc(CollectOrderLogInfo::getUpdateTime) .orderByDesc(CollectOrderLog::getUpdateTime)
.last("LIMIT 1")); .last("LIMIT 1"));
if(ObjectUtils.isNotEmpty(orderList)){ if(ObjectUtils.isNotEmpty(orderList)){
// 最新的数据日期 // 最新的数据日期
return orderList.get(0); CollectOrderLog collectOrderLog = orderList.get(0);
return BeanUtils.transitionDto(collectOrderLog, CollectOrderLogDto.class);
} }
return null; return null;
} }
......
...@@ -22,73 +22,6 @@ public class FinianceBaseZbjTypeDaoImpl implements FinanceBaseZbjTypeDao { ...@@ -22,73 +22,6 @@ public class FinianceBaseZbjTypeDaoImpl implements FinanceBaseZbjTypeDao {
@Override @Override
public Map<String, String> selectBaseZbjType() { public Map<String, String> selectBaseZbjType() {
List<FinanceBaseZbjType> list = mapper.selectList(new LambdaQueryWrapper<>()); List<FinanceBaseZbjType> list = mapper.selectList(new LambdaQueryWrapper<>());
// 以fenxiaoName为key,直播间渠道类型为value,放入map中 // 以fenxiaoName为key,直播间渠道类型为value,放入map中
Map<String, String> map = list.stream() Map<String, String> map = list.stream()
.collect(HashMap::new, (k, v) -> k.put(v.getFenxiaoName(), v.getZbjQdType()), HashMap::putAll); .collect(HashMap::new, (k, v) -> k.put(v.getFenxiaoName(), v.getZbjQdType()), HashMap::putAll);
......
package com.sfa.job.domain.order.dao.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.sfa.job.domain.order.dao.FinanceOrderDao;
import com.sfa.job.domain.order.entity.FinanceOrder;
import com.sfa.job.domain.order.mapper.FinanceOrderMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@DS("Bi")
@Repository
public class FinianceOrderDaoImpl implements FinanceOrderDao {
private static final int BATCH_SIZE = 1000;
@Autowired
private FinanceOrderMapper financeOrderMapper;
@Override
public void saveOrUpdateBatch(List<FinanceOrder> mergeList) {
for (int i = 0; i < mergeList.size(); i += BATCH_SIZE) {
int toIndex = Math.min(i + BATCH_SIZE, mergeList.size());
List<FinanceOrder> batchLists = mergeList.subList(i, toIndex);
financeOrderMapper.saveOrUpdateBatch(batchLists);
}
}
}
...@@ -19,7 +19,6 @@ public class FinianceOrderDetailDaoImpl implements FinanceOrderDetailDao { ...@@ -19,7 +19,6 @@ public class FinianceOrderDetailDaoImpl implements FinanceOrderDetailDao {
@Override @Override
public void saveOrUpdateBatch(List<FinanceOrderDetail> mergeList) { public void saveOrUpdateBatch(List<FinanceOrderDetail> mergeList) {
for (int i = 0; i < mergeList.size(); i += BATCH_SIZE) { for (int i = 0; i < mergeList.size(); i += BATCH_SIZE) {
int toIndex = Math.min(i + BATCH_SIZE, mergeList.size()); int toIndex = Math.min(i + BATCH_SIZE, mergeList.size());
List<FinanceOrderDetail> batchLists = mergeList.subList(i, toIndex); List<FinanceOrderDetail> batchLists = mergeList.subList(i, toIndex);
......
package com.sfa.job.domain.order.dao.impl; package com.sfa.job.domain.order.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.sfa.job.domain.order.dao.IProductDao; import com.sfa.job.domain.order.dao.IProductDao;
import com.sfa.job.domain.order.entity.PrdInfo; import com.sfa.job.domain.order.entity.PrdInfo;
...@@ -7,7 +8,9 @@ import com.sfa.job.domain.order.mapper.PrdInfoMapper; ...@@ -7,7 +8,9 @@ import com.sfa.job.domain.order.mapper.PrdInfoMapper;
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
...@@ -21,12 +24,20 @@ public class ProductDaoImpl implements IProductDao { ...@@ -21,12 +24,20 @@ public class ProductDaoImpl implements IProductDao {
PrdInfoMapper prdInfoMapper; PrdInfoMapper prdInfoMapper;
@Override @Override
public List<PrdInfo> selectProdSeries() { public Map<String, String> selectProdSeries() {
List<PrdInfo> prdInfos = prdInfoMapper.selectList( List<PrdInfo> prdInfos = prdInfoMapper.selectList(
new LambdaQueryWrapper<PrdInfo>() new LambdaQueryWrapper<PrdInfo>()
.select(PrdInfo::getSeries, PrdInfo::getPrdCode, PrdInfo::getPrdName) .select(PrdInfo::getSeries, PrdInfo::getPrdCode, PrdInfo::getPrdName)
.groupBy(PrdInfo::getSeries, PrdInfo::getPrdCode, PrdInfo::getPrdName)); .groupBy(PrdInfo::getSeries, PrdInfo::getPrdCode, PrdInfo::getPrdName));
return prdInfos; // 转换成map
Map<String, String> prodSeriesMap = new HashMap<>();
if (ObjectUtil.isNotEmpty(prdInfos)) {
prdInfos.stream().forEach(prdInfoDto -> {
prodSeriesMap.put(prdInfoDto.getPrdCode(), prdInfoDto.getPrdName());
});
}
return prodSeriesMap;
} }
} }
...@@ -10,9 +10,9 @@ import java.util.Map; ...@@ -10,9 +10,9 @@ import java.util.Map;
* CollectErrorInfo 类表示采集错误记录,与数据库表 market_bi.collect_error_info 相对应。 * CollectErrorInfo 类表示采集错误记录,与数据库表 market_bi.collect_error_info 相对应。
* 包含了采集错误记录的各种信息,如唯一键、入参信息、类型、采集时间、删除标志、创建和更新的用户及时间等。 * 包含了采集错误记录的各种信息,如唯一键、入参信息、类型、采集时间、删除标志、创建和更新的用户及时间等。
*/ */
@TableName(value ="collect_error_info") @TableName(value ="collect_error_log")
@Data @Data
public class CollectErrorInfo { public class CollectErrorLog {
......
...@@ -17,8 +17,8 @@ import java.util.Date; ...@@ -17,8 +17,8 @@ import java.util.Date;
* @description * @description
*/ */
@Data @Data
@TableName("collect_order_log_info") @TableName("collect_order_log")
public class CollectOrderLogInfo implements Serializable { public class CollectOrderLog implements Serializable {
/** /**
* 唯一键,用于唯一标识采集订单日志信息记录 * 唯一键,用于唯一标识采集订单日志信息记录
...@@ -29,13 +29,11 @@ public class CollectOrderLogInfo implements Serializable { ...@@ -29,13 +29,11 @@ public class CollectOrderLogInfo implements Serializable {
/** /**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符 * 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/ */
//@TableField("order_count")
private Integer orderCount; private Integer orderCount;
/** /**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符 * 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/ */
//@TableField("order_detail_count")
private Integer orderDetailCount; private Integer orderDetailCount;
/** /**
......
package com.sfa.job.domain.order.mapper; package com.sfa.job.domain.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.domain.order.entity.CollectErrorInfo; import com.sfa.job.domain.order.entity.CollectErrorLog;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface CollectErrorInfoMapper extends BaseMapper<CollectErrorInfo> { public interface CollectErrorLogMapper extends BaseMapper<CollectErrorLog> {
} }
package com.sfa.job.domain.order.mapper; package com.sfa.job.domain.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.domain.order.entity.CollectOrderLogInfo; import com.sfa.job.domain.order.entity.CollectOrderLog;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface CollectOrderLogInfoMapper extends BaseMapper<CollectOrderLogInfo> { public interface CollectOrderLogMapper extends BaseMapper<CollectOrderLog> {
} }
...@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.job.domain.order.entity.FinanceOrder; import com.sfa.job.domain.order.entity.FinanceOrder;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper @Mapper
public interface FinanceOrderMapper extends BaseMapper<FinanceOrder> { public interface FinanceOrderMapper extends BaseMapper<FinanceOrder> {
void saveOrUpdateBatch(List<FinanceOrder> batchLists);
} }
package com.sfa.job.pojo.response;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 采集订单日志信息
*
* @author lvbencai
* @date 2025-02-24 14:24:39
* @description
*/
@Data
public class CollectOrderLogDto implements Serializable {
/**
* 唯一键,用于唯一标识采集订单日志信息记录
*/
@TableId(value = "cli_id",type= IdType.AUTO)
private Long cliId;
/**
* 采集订单的数量,存储为字符串,长度不超过 20 个字符
*/
private Integer orderCount;
/**
* 采集订单的详细数量,存储为字符串,长度不超过 20 个字符
*/
private Integer orderDetailCount;
/**
* 采集批次信息,可存储长度不超过 30 个字符,使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则
*/
private String batchNo;
/**
* 采集的最新时间,代表上一次采集的结束时间,存储为日期时间类型
*/
private Date latestTime;
// 2025年01月22日17:24:37增加,用于分批次查询
private Integer pageNo;
/**
* 是否删除的标志,'0' 表示未删除,'1' 表示已删除,使用 utf8mb3 字符集和 utf8mb3_general_ci 校对规则
*/
private String delFlag;
/**
* 创建者信息,存储为长度不超过 20 个字符的字符串
*/
private String createBy;
/**
* 创建人的用户 ID,存储为长整型
*/
private Long createUserId;
/**
* 创建时间,存储为日期时间类型,使用数据库的当前时间作为默认值
*/
private Date createTime;
/**
* 更新者信息,存储为长度不超过 20 个字符的字符串
*/
private String updateBy;
/**
* 修改人的用户 ID,存储为长整型
*/
private Long updateUserId;
/**
* 更新时间,存储为日期时间类型,更新时自动更新为当前时间
*/
private Date updateTime;
private Integer syncType;
private Integer totalCount;
}
package com.sfa.job.pojo.response;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* 商品-dto
*/
@Data
public class PrdInfoDto implements Serializable {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer prdId;
/**
* 商品编码
*/
private String prdCode;
/**
* 商品名称
*/
private String prdName;
/**
* 商品系列
*/
private Integer seriesId;
/**
* 商品系列
*/
private String series;
/**
* 商品规格-69码
*/
private String prdSpec;
/**
* 销售状态:1:在售,0:停售
*/
private Integer saleStatus;
/**
* 0:正常;1:删除
*/
private Integer status;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}
...@@ -12,5 +12,5 @@ import lombok.Data; ...@@ -12,5 +12,5 @@ import lombok.Data;
public class WangdiantongQueryDto { public class WangdiantongQueryDto {
private JSONArray result; private JSONArray result;
private Integer totalCount; private Integer totalCount;
private Integer nextBeginPageNo;
} }
package com.sfa.job.service.order; package com.sfa.job.service.order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sfa.job.domain.order.entity.FinanceOrder;
import com.sfa.job.pojo.response.FinanceSyncOrderDetailDto; import com.sfa.job.pojo.response.FinanceSyncOrderDetailDto;
import java.util.Date; import java.util.Date;
public interface FinanceOrderSyncService extends IService<FinanceOrder> { public interface FinanceOrderSyncService {
FinanceSyncOrderDetailDto syncWangdiantongOrder(Date startTime, Date endTime, Integer syncType); FinanceSyncOrderDetailDto syncWangdiantongOrder(Date startTime, Date endTime, Integer syncType);
} }
...@@ -6,13 +6,13 @@ import cn.hutool.http.HttpStatus; ...@@ -6,13 +6,13 @@ import cn.hutool.http.HttpStatus;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONReader; import com.alibaba.fastjson2.JSONReader;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sfa.common.core.exception.ServiceException; import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.core.utils.DateUtils; import com.sfa.common.core.utils.DateUtils;
import com.sfa.job.constants.Constants;
import com.sfa.job.domain.order.dao.*; import com.sfa.job.domain.order.dao.*;
import com.sfa.job.domain.order.entity.*; import com.sfa.job.domain.order.entity.*;
import com.sfa.job.domain.order.mapper.FinanceOrderMapper;
import com.sfa.job.pojo.request.WangdiantongQueryVO; import com.sfa.job.pojo.request.WangdiantongQueryVO;
import com.sfa.job.pojo.response.CollectOrderLogDto;
import com.sfa.job.pojo.response.FinanceSyncOrderDetailDto; import com.sfa.job.pojo.response.FinanceSyncOrderDetailDto;
import com.sfa.job.pojo.response.WangdiantongQueryDto; import com.sfa.job.pojo.response.WangdiantongQueryDto;
import com.sfa.job.service.order.FinanceOrderSyncService; import com.sfa.job.service.order.FinanceOrderSyncService;
...@@ -36,21 +36,22 @@ import java.util.concurrent.atomic.AtomicInteger; ...@@ -36,21 +36,22 @@ import java.util.concurrent.atomic.AtomicInteger;
@DS("bi") @DS("bi")
@Slf4j @Slf4j
@Service @Service
public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, FinanceOrder> implements FinanceOrderSyncService { public class FinanceOrderSyncServiceImpl implements FinanceOrderSyncService {
@Autowired @Autowired
WangdiantongUtil wangdiantongUtil; WangdiantongUtil wangdiantongUtil;
@Autowired @Autowired
// FinanceOrderDetailService detailService; FinanceOrderDetailDao orderDetailDao;
FinanceOrderDetailDao detailDao; @Autowired
FinanceOrderDao orderDao;
@Autowired @Autowired
FinianceBaseProductDao baseProductDao; FinianceBaseProductDao baseProductDao;
@Autowired @Autowired
FinanceBaseZbjTypeDao baseZbjTypeDao; FinanceBaseZbjTypeDao baseZbjTypeDao;
@Autowired @Autowired
CollectOrderLogInfoDao orderLogInfoDao; CollectOrderLogDao orderLogInfoDao;
@Autowired @Autowired
CollectErrorInfoDao errorInfoDao; CollectErrorLogDao errorInfoDao;
@Autowired @Autowired
IProductDao productDao; IProductDao productDao;
...@@ -73,11 +74,11 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -73,11 +74,11 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
if (ObjectUtils.isEmpty(startTime)) { if (ObjectUtils.isEmpty(startTime)) {
Date latestTime = null; Date latestTime = null;
// 查询最新的采集时间 // 查询最新的采集时间
CollectOrderLogInfo collectOrderLogInfo = orderLogInfoDao.selectOrderSyncLatest(syncType); CollectOrderLogDto collectOrderLog = orderLogInfoDao.selectOrderSyncLatest(syncType);
if (ObjectUtils.isNotEmpty(collectOrderLogInfo)) { if (ObjectUtils.isNotEmpty(collectOrderLog)) {
latestTime = collectOrderLogInfo.getLatestTime(); latestTime = collectOrderLog.getLatestTime();
Integer pageNoExist = collectOrderLogInfo.getPageNo(); Integer pageNoExist = collectOrderLog.getPageNo();
beginPageNo.set(ObjectUtil.isNotEmpty(pageNoExist) && pageNoExist > 0 ? collectOrderLogInfo.getPageNo() : 0); beginPageNo.set(ObjectUtil.isNotEmpty(pageNoExist) && pageNoExist > 0 ? collectOrderLog.getPageNo() : 0);
nextPageFlag = beginPageNo.get() > 0; nextPageFlag = beginPageNo.get() > 0;
} else { } else {
// 默认上个月的第一天 00:00:00 // 默认上个月的第一天 00:00:00
...@@ -102,8 +103,8 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -102,8 +103,8 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
detailDto.setBatchNo(batchNo); detailDto.setBatchNo(batchNo);
detailDto.setStartTime(startTime); detailDto.setStartTime(startTime);
detailDto.setEndTime(endTime); detailDto.setEndTime(endTime);
detailDto.setMessage(String.format("开始时间%s不能大于当前时间%s", DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(currentLatest) )); detailDto.setMessage(String.format("开始时间%s不能大于当前时间%s", DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(currentLatest)));
log.warn(String.format("开始时间%s不能大于当前时间%s", DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(currentLatest) )); log.warn(String.format("开始时间%s不能大于当前时间%s", DateUtil.formatDateTime(startTime), DateUtil.formatDateTime(currentLatest)));
return detailDto; return detailDto;
} }
...@@ -129,23 +130,22 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -129,23 +130,22 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
Map<String, String> baseZbjType = baseZbjTypeDao.selectBaseZbjType(); Map<String, String> baseZbjType = baseZbjTypeDao.selectBaseZbjType();
// 系列 // 系列
List<PrdInfo> prdInfos = productDao.selectProdSeries(); Map<String, String> prodSeriesMap = productDao.selectProdSeries();
// 转换成map
Map<String, String> prodSeriesMap = new HashMap<>();
prdInfos.stream().forEach(prdInfo -> {
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;
orders.forEach(order -> { orders.forEach(order -> {
order.setDelFlag(0);
order.setBatchNo(batchNo); order.setBatchNo(batchNo);
order.setStartTime(finalStartTime); order.setStartTime(finalStartTime);
order.setEndTime(finalEndTime); order.setEndTime(finalEndTime);
order.setSyncType(syncType); order.setSyncType(syncType);
order.setCreateTime(new Date());
order.setUpdateTime(new Date());
}); });
this.saveOrUpdateBatch(orders); orderDao.saveOrUpdateBatch(orders);
List<FinanceOrderDetail> mergeList = new ArrayList<>(); List<FinanceOrderDetail> mergeList = new ArrayList<>();
...@@ -207,20 +207,21 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -207,20 +207,21 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper,
log.info("开始插入订单详情数据,数量:{}", mergeList.size()); log.info("开始插入订单详情数据,数量:{}", mergeList.size());
// 批量插入 // 批量插入
detailDao.saveOrUpdateBatch(mergeList); orderDetailDao.saveOrUpdateBatch(mergeList);
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(), beginPageNo.get());
CollectOrderLogInfo collectOrderLogInfo = new CollectOrderLogInfo(); CollectOrderLog collectOrderLog = new CollectOrderLog();
collectOrderLogInfo.setSyncType(syncType); collectOrderLog.setSyncType(syncType);
collectOrderLogInfo.setOrderCount(orders.size()); collectOrderLog.setOrderCount(orders.size());
collectOrderLogInfo.setOrderDetailCount(mergeList.size()); collectOrderLog.setOrderDetailCount(mergeList.size());
collectOrderLogInfo.setBatchNo(batchNo); collectOrderLog.setBatchNo(batchNo);
collectOrderLogInfo.setLatestTime(endTime); collectOrderLog.setLatestTime(endTime);
collectOrderLogInfo.setPageNo(beginPageNo.get()); collectOrderLog.setPageNo(beginPageNo.get());
collectOrderLogInfo.setTotalCount(wangdiantongQueryDto.getTotalCount()); collectOrderLog.setTotalCount(wangdiantongQueryDto.getTotalCount());
orderLogInfoDao.insert(collectOrderLogInfo); orderLogInfoDao.insert(collectOrderLog);
// 接口测试使用 // 接口测试使用
detailDto.setOrderCount(orders.size()); detailDto.setOrderCount(orders.size());
...@@ -233,9 +234,9 @@ public class FinanceOrderSyncServiceImpl extends ServiceImpl<FinanceOrderMapper, ...@@ -233,9 +234,9 @@ 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(); CollectErrorLog errorInfo = new CollectErrorLog();
errorInfo.setBatchNo(batchNo); errorInfo.setBatchNo(batchNo);
errorInfo.setType("xxlJob"); errorInfo.setType(Constants.SYNC_TYPE_XXL_JOB);
errorInfo.setErrorMsg(e.getMessage()); errorInfo.setErrorMsg(e.getMessage());
errorInfo.setEndTime(endTime); errorInfo.setEndTime(endTime);
errorInfo.setStartTime(startTime); errorInfo.setStartTime(startTime);
......
...@@ -67,7 +67,7 @@ public class FeiShuUtil { ...@@ -67,7 +67,7 @@ public class FeiShuUtil {
.build(); .build();
FindByDepartmentUserResp resp = client.contact().user().findByDepartment(req); FindByDepartmentUserResp resp = client.contact().user().findByDepartment(req);
if(!resp.success()) { if(!resp.success()) {
System.out.println(String.format("code:%s,msg:%s,reqId:%s, resp:%s", log.warn(String.format("code:%s,msg:%s,reqId:%s, resp:%s",
resp.getCode(), resp.getMsg(), resp.getRequestId(), Jsons.createGSON(true, false).toJson(JsonParser.parseString(new String(resp.getRawResponse().getBody(), "UTF-8"))))); resp.getCode(), resp.getMsg(), resp.getRequestId(), Jsons.createGSON(true, false).toJson(JsonParser.parseString(new String(resp.getRawResponse().getBody(), "UTF-8")))));
return null; return null;
} }
......
...@@ -31,7 +31,7 @@ public class WangdiantongUtil { ...@@ -31,7 +31,7 @@ public class WangdiantongUtil {
Integer totalCount = 0; Integer totalCount = 0;
try { try {
// 最大处理量,超过了,不再查询 // 最大处理量,超过了,不再查询
int maxDealCount = 500; int maxDealCount = 1000;
int size = 0; int size = 0;
int pageNo = beginPageNo.get(); int pageNo = beginPageNo.get();
// 出现了查询的分页数量不足的情况 // 出现了查询的分页数量不足的情况
...@@ -89,7 +89,7 @@ public class WangdiantongUtil { ...@@ -89,7 +89,7 @@ public class WangdiantongUtil {
throw new ServiceException("访问旺店通接口错误" + messageJson.toString()); throw new ServiceException("访问旺店通接口错误" + messageJson.toString());
} }
totalCount = dataR.getInteger("total_count"); totalCount = dataR.getInteger("total_count");
maxPage = totalCount / 200; maxPage = (totalCount+199)/200;
JSONArray orderJsonArray = dataR.getJSONArray("order"); JSONArray orderJsonArray = dataR.getJSONArray("order");
allArray.addAll(orderJsonArray); allArray.addAll(orderJsonArray);
...@@ -99,12 +99,13 @@ public class WangdiantongUtil { ...@@ -99,12 +99,13 @@ public class WangdiantongUtil {
// 计算下一次分页的页码 // 计算下一次分页的页码
pageNo++; pageNo++;
} while (size < maxDealCount && pageNo <= maxPage); } while (size < maxDealCount && pageNo <= maxPage);
if (pageNo > maxPage) { if (pageNo >= maxPage) {
// 已经到最后一页了,设置成-1,表示已经处理完了,不再查询 // 已经到最后一页了,设置成-1,表示已经处理完了,不再查询
beginPageNo.set(-1); beginPageNo.set(-1);
} else { } else {
beginPageNo.set(pageNo); beginPageNo.set(pageNo);
} }
wangdiantongQueryDto.setNextBeginPageNo(pageNo);
wangdiantongQueryDto.setResult(allArray); wangdiantongQueryDto.setResult(allArray);
wangdiantongQueryDto.setTotalCount(totalCount); wangdiantongQueryDto.setTotalCount(totalCount);
} catch (Exception e) { } catch (Exception e) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论