思迅初始化与更新区分

This commit is contained in:
liyj 2025-11-27 15:00:33 +08:00
parent 504f03e5f6
commit c0f11aa224
5 changed files with 114 additions and 34 deletions

View File

@ -385,6 +385,62 @@ public class BaseDao {
return resultDto; return resultDto;
} }
/**
* 全量查询
* @param ip
* @param username
* @param password
* @param portNumber
* @param dataBaseName
* @param pageNo
* @param pageSize
* @param where
* @param stockOperateWhere
* @return
*/
public ResultDto baseFindAllGoodsListJoinPage(String ip, String username, String password,Integer portNumber, String dataBaseName, int pageNo, int pageSize,
String where,String stockOperateWhere){
Connection connection=getConnection(ip,username,password,portNumber,dataBaseName);
int start=(pageNo-1)*pageSize+1;
int end=pageNo*pageSize;
String sql="SELECT * " +
"FROM (" +
" SELECT " +
" ROW_NUMBER() OVER(ORDER BY shop.item_clsno, shop.item_no) AS rowIdA," +
" shop.*," +
" (\n" +
" SELECT TOP 1 stock_qty " +
" FROM t_im_branch_stock " +
" WHERE item_no = shop.item_no " +
" ORDER BY oper_date DESC " +
" ) as stock_qty,\n" +
" (\n" +
" SELECT TOP 1 oper_date " +
" FROM t_im_branch_stock " +
" WHERE item_no = shop.item_no " +
" ORDER BY oper_date DESC " +
" ) as oper_date " +
" FROM t_bd_item_info shop " +
" %s " +
") t " +
"WHERE rowIdA BETWEEN %s AND %s " +
"ORDER BY rowIdA;";
sql=String.format(sql,where,start,end);
log.info(sql);
ResultDto resultDto=new ResultDto();
ResultSet rs=null;
try {
PreparedStatement ps= connection.prepareStatement(sql);
rs = ps.executeQuery();
} catch (SQLException e) {
log.info("数据库查询异常方法{},异常信息{}","com.suisung.mall.shop.sixun.dao.BaseDao.baseFindListJoinPage",e.getMessage());
throw new RuntimeException(e);
}
resultDto.setResultSet(rs);
resultDto.setConnection(connection);
return resultDto;
}
/** /**
* *
* @param ip * @param ip

View File

@ -127,9 +127,15 @@ public class SxDataDao extends BaseDao{
try { try {
while (rs.next()) { while (rs.next()) {
sxSyncCategory=new SxSyncCategory(); sxSyncCategory=new SxSyncCategory();
sxSyncCategory.setItem_clsname(rs.getString("item_clsname"));//分类名称 if(StringUtils.isNotEmpty(rs.getString("item_clsname"))){
sxSyncCategory.setCls_parent(rs.getString("cls_parent"));//父级编码 sxSyncCategory.setItem_clsname(rs.getString("item_clsname").trim());//分类名称
sxSyncCategory.setItem_clsno(rs.getString("item_clsno"));//分类编码 }
if(StringUtils.isNotEmpty(rs.getString("cls_parent"))){
sxSyncCategory.setCls_parent(rs.getString("cls_parent").trim());//父级编码
}
if(StringUtils.isNotEmpty(rs.getString("item_clsno"))){
sxSyncCategory.setItem_clsno(rs.getString("item_clsno").trim());//分类编码
}
// System.out.printf(rs.getString("item_clsno"));//分类编码 // System.out.printf(rs.getString("item_clsno"));//分类编码
// log.info(rs.getString("item_clsname")+"\t");//分类名称 // log.info(rs.getString("item_clsname")+"\t");//分类名称
//log.info(rs.getString("cls_parent")+"\t");//父级编码 //log.info(rs.getString("cls_parent")+"\t");//父级编码
@ -203,13 +209,22 @@ public class SxDataDao extends BaseDao{
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
*/ */
public List<SxSyncGoods> findBditemInfoListPage(DataBaseInfo dataBaseInfo,int pageNo,int pageSize){ public List<SxSyncGoods> findBditemInfoListPage(DataBaseInfo dataBaseInfo,int pageNo,int pageSize,boolean isAll){
String stockOperateWhere=""; String stockOperateWhere="";
if(StringUtils.isNotEmpty(dataBaseInfo.getStockOperateWhere())){ if(StringUtils.isNotEmpty(dataBaseInfo.getStockOperateWhere())){
stockOperateWhere=" where "+dataBaseInfo.getStockOperateWhere(); stockOperateWhere=" where "+dataBaseInfo.getStockOperateWhere();
} }
ResultDto resultDto=baseFindGoodsListJoinPage(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),dataBaseInfo.getDbPort(),dataBaseInfo.getDataBaseName()
,pageNo,pageSize,dataBaseInfo.getWhere()==null?DEFALTWHERE:dataBaseInfo.getWhere(),stockOperateWhere); ResultDto resultDto=null;
if(!isAll){
resultDto=baseFindGoodsListJoinPage(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),dataBaseInfo.getDbPort(),dataBaseInfo.getDataBaseName()
,pageNo,pageSize,dataBaseInfo.getWhere()==null?DEFALTWHERE:dataBaseInfo.getWhere(),stockOperateWhere);
}else {
resultDto=baseFindAllGoodsListJoinPage(dataBaseInfo.getIp(),dataBaseInfo.getUserName(),dataBaseInfo.getPassword(),dataBaseInfo.getDbPort(),dataBaseInfo.getDataBaseName()
,pageNo,pageSize,dataBaseInfo.getWhere()==null?DEFALTWHERE:dataBaseInfo.getWhere(),stockOperateWhere);
}
ResultSet rs= resultDto.getResultSet(); ResultSet rs= resultDto.getResultSet();
List<SxSyncGoods> sxSyncGoodses=new ArrayList<>(); List<SxSyncGoods> sxSyncGoodses=new ArrayList<>();
SxSyncGoods sxSyncGoods=null; SxSyncGoods sxSyncGoods=null;

View File

@ -45,4 +45,7 @@ public class ProductQuantityConsumptionDto {
@ApiModelProperty(value = "更新时间") @ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime; private Date updateTime;
@ApiModelProperty(value = "下单时间")
private Long saleTime;
} }

View File

@ -60,7 +60,7 @@ public abstract class SxDataAbstService {
* @param allSxSyncCategories 所有分类 * @param allSxSyncCategories 所有分类
* @return * @return
*/ */
public List<SxCategoryModel> ConVToSxCategoryModel(List<SxSyncCategory> sxSyncCategories,List<SxSyncCategory> allSxSyncCategories, Map<String,String> clsBrandMap) { public List<SxCategoryModel> ConVToSxCategoryModel(List<SxSyncCategory> sxSyncCategories,List<SxSyncCategory> allSxSyncCategories, Map<String,String> clsBrandMap) {
if(CollectionUtil.isEmpty(sxSyncCategories)){ if(CollectionUtil.isEmpty(sxSyncCategories)){
return new ArrayList<>(); return new ArrayList<>();
} }
@ -69,37 +69,41 @@ public abstract class SxDataAbstService {
SxCategoryModel sxCategoryModel=null; SxCategoryModel sxCategoryModel=null;
while (iterator.hasNext()){ while (iterator.hasNext()){
SxSyncCategory sxSyncCategory= iterator.next(); SxSyncCategory sxSyncCategory= iterator.next();
sxCategoryModel=new SxCategoryModel(); try {
sxCategoryModel.setCategory_image(SxDataDao.DEFAULT_IMG); sxCategoryModel=new SxCategoryModel();
sxCategoryModel.setCategory_name(sxSyncCategory.getItem_clsname()); sxCategoryModel.setCategory_image(SxDataDao.DEFAULT_IMG);
sxCategoryModel.setBrandName(clsBrandMap.get(sxSyncCategory.getItem_clsname())); sxCategoryModel.setCategory_name(sxSyncCategory.getItem_clsname());
//寻找父级 sxCategoryModel.setBrandName(clsBrandMap.get(sxSyncCategory.getItem_clsname()));
if(StringUtils.isNotEmpty(sxSyncCategory.getCls_parent())){ //寻找父级
SxSyncCategory firstNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent()); if(StringUtils.isNotEmpty(sxSyncCategory.getCls_parent())){
if(null==firstNode){ SxSyncCategory firstNode=getParentNode(allSxSyncCategories,sxSyncCategory.getCls_parent());
sxCategoryModel.setFirst_category_name(""); if(null==firstNode){
sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name()); sxCategoryModel.setFirst_category_name("");
sxCategoryModels.add(sxCategoryModel); sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name());
continue; sxCategoryModels.add(sxCategoryModel);
} continue;
sxCategoryModel.setParent_name(firstNode.getItem_clsname());//todo 暂时无用 }
//如何存在上级的上级则上级为第二层上上及为第一层 sxCategoryModel.setParent_name(firstNode.getItem_clsname());//todo 暂时无用
if(StringUtils.isNotEmpty(firstNode.getCls_parent())) {//还存在上级 //如何存在上级的上级则上级为第二层上上及为第一层
SxSyncCategory secondNode=getParentNode(allSxSyncCategories,firstNode.getCls_parent()); if(StringUtils.isNotEmpty(firstNode.getCls_parent())) {//还存在上级
if(null!=secondNode && secondNode.getItem_clsno().equals(firstNode.getCls_parent())){ SxSyncCategory secondNode=getParentNode(allSxSyncCategories,firstNode.getCls_parent());
sxCategoryModel.setFirst_category_name(secondNode.getItem_clsname()); if(null!=secondNode && secondNode.getItem_clsno().equals(firstNode.getCls_parent())){
sxCategoryModel.setSecond_category_name(firstNode.getItem_clsname()); sxCategoryModel.setFirst_category_name(secondNode.getItem_clsname());
sxCategoryModel.setSecond_category_name(firstNode.getItem_clsname());
}else {
sxCategoryModel.setFirst_category_name(firstNode.getItem_clsname());
}
}else { }else {
sxCategoryModel.setFirst_category_name(firstNode.getItem_clsname()); sxCategoryModel.setFirst_category_name(firstNode.getItem_clsname());
} }
}else { }else {
sxCategoryModel.setFirst_category_name(firstNode.getItem_clsname()); sxCategoryModel.setFirst_category_name("");
} }
}else { sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name());
sxCategoryModel.setFirst_category_name(""); sxCategoryModels.add(sxCategoryModel);
}catch (Exception e){
log.info("sxSyncCategory:{}",sxSyncCategory);
} }
sxCategoryModel.setProduct_type(sxCategoryModel.getCategory_name());
sxCategoryModels.add(sxCategoryModel);
} }
sxCategoryModels=filterCategories(sxCategoryModels); sxCategoryModels=filterCategories(sxCategoryModels);
return sxCategoryModels; return sxCategoryModels;
@ -132,7 +136,7 @@ public abstract class SxDataAbstService {
List<SxSyncCategory> list= sxSyncCategories.stream().filter(cc-> List<SxSyncCategory> list= sxSyncCategories.stream().filter(cc->
cc.getItem_clsno().trim().equals(parentId.trim())) cc.getItem_clsno().trim().equals(parentId.trim()))
.collect(Collectors.toList()); .collect(Collectors.toList());
return CollectionUtil.isNotEmpty(list)?list.get(0):new SxSyncCategory(); return CollectionUtil.isNotEmpty(list)?list.get(0):null;
} }
/** /**

View File

@ -334,6 +334,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
//String where="where 1=1"; //String where="where 1=1";
String where="where shop.status='1'"; String where="where shop.status='1'";
Integer total =0; Integer total =0;
boolean isAll=false;
String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());//加载缓存用的 String parentId=getAndCacheTree(dataBaseInfo,dataBaseInfo.getCategoryName());//加载缓存用的
String fileEndFix=""; String fileEndFix="";
if(DicEnum.SYNCTYPE_02.getCode().equals(dataBaseInfo.getSyncType())){ if(DicEnum.SYNCTYPE_02.getCode().equals(dataBaseInfo.getSyncType())){
@ -374,6 +375,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
total = sxDataDao.getTBditemInfoJoninTotal(dataBaseInfo); total = sxDataDao.getTBditemInfoJoninTotal(dataBaseInfo);
}else { }else {
where="where b.status='1'"; where="where b.status='1'";
isAll=true;
dataBaseInfo.setWhere(where); dataBaseInfo.setWhere(where);
total = sxDataDao.getTBditemInfoTotal(dataBaseInfo); total = sxDataDao.getTBditemInfoTotal(dataBaseInfo);
where="where shop.status='1'"; where="where shop.status='1'";
@ -396,7 +398,7 @@ public class SxDataServiceImp extends SxDataAbstService implements SxDataService
Date refreshDate= DateUtil.date(tenMinutesAgo); Date refreshDate= DateUtil.date(tenMinutesAgo);
List<String> folders=new ArrayList<>(); List<String> folders=new ArrayList<>();
for (int i = 1; i <=pages; i++) { for (int i = 1; i <=pages; i++) {
List<SxSyncGoods> sxSyncGoods= sxDataDao.findBditemInfoListPage(dataBaseInfo,i,SxDataDao.PAGESIZE); List<SxSyncGoods> sxSyncGoods= sxDataDao.findBditemInfoListPage(dataBaseInfo,i,SxDataDao.PAGESIZE,isAll);
List<SxGoosModel> sxGoosModelList= CvtToGoosModel(sxSyncGoods,specPriceDtoList); List<SxGoosModel> sxGoosModelList= CvtToGoosModel(sxSyncGoods,specPriceDtoList);
String jsonString=""; String jsonString="";
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();